0

I have 4 tables: user, user_course, classes, and queues.

user_course has a user_id, classes has a user_course_id, and queues has a classes_id column.

I'd like to retrieve all queues with a class_id that corresponds to a user_course registered by the current user_id.

Basically, what I want to do is: $user->user_course->classes->queues

Except I can't loop over the above directly.

So how can I eager load it with something like $classes = App\Classes::with('Queues') except constrain it to the currently logged in user_id?

I'm new to eager loading and can't get this to work. Please inform me if I need to edit my question details.

Wessam
  • 17
  • 9

1 Answers1

0

You can use:

$user = User::with('user_course.classes.queues')->find($idOfUser);

It will first run query to get user courses, then it will run query to get user courses classes and then it will run query the get queues of classes.

Marcin Nabiałek
  • 109,655
  • 42
  • 258
  • 291