Scout APM helps PHP developers pinpoint N+1 queries, memory leaks & more so you can troubleshoot fast & get back to coding faster. Start your free 14-day trial today.

Laravel's HasManyThrough cheatsheet

- The current model Country has a relation to Post via User
- The intermediate model is linked to the current model via users.country_id
- The target model is linked to the intermediate model via posts.user_id
- users.country_id maps to
- posts.user_id maps to
    id - integer
    name - string

    id - integer
    country_id - integer
    name - string

    id - integer
    user_id - integer
    title - string
class Country extends Model
    public function posts()
        return $this->hasManyThrough(
            'country_id', // Foreign key on users table...
            'user_id', // Foreign key on posts table...
            'id', // Local key on countries table...
            'id' // Local key on users table...