Home > Blockchain >  Laravel many to many and hasMany, N 1
Laravel many to many and hasMany, N 1

Time:01-10

I got a model Event that has many private classes

  public function privateclasses()
  {
    return $this->hasMany(Privateclass::class);
  }

This is working perfect


Model Privateclass and User is connected in table "privateclass_user" with foreign key "privateclass_id" and "user_id".

In model Privateclass.php:

public function users()
  {
    return $this->belongsToMany(User::class);
  }

This is also working, but when I get the event the query count is high. How do I Eager Load this?

$event = Event::with('users')->get(); <-- NOT WORKING

In short: I want all users connected to privateclass that belongs to an Event.

CodePudding user response:

https://laravel.com/docs/9.x/eloquent-relationships#nested-eager-loading

To eager load a relationship's relationships, you may use "dot" syntax.

Looks like you need:

Event::with('privateclasses.users')

or:

Event::with([
    'privateclasses' => [
        'users'
    ]
])
  • Related