Как получить связи у коллекции пользователей

У меня есть коллекция пользователей

$department = Department::find(1)->users;

Мне нужно получить к ним отношения Journal, ниже код рабочий, но тут используется условия на прямую из таблицы Users, а мне конкретно нужно из коллекции $department

User::where('name', '<>', 'Manager')
        ->with(['journal' => function($query) use ($request){
        $query->where('schedule', 'like', "%" . $request->date . "%");
    }])->get();

Ответы (1 шт):

Автор решения: Dmitrii Sedov

Ну если читать документацию по получению связующих таблиц, то есть способы как это делать.

  1. Так же из бд, при получении коллекции. (users вызвать как метод users())

    Department::find(1)->users()->with('journal')->get();
    
  2. Если уж надо из коллекции, например такая ситуация возникает когда идёт в blade перебор массива через цикл и надо динамически получить под таблицы, то:

    $users = Department::find(1)->users;
    $users->load('journal');
    ...
    

Вы можете выводить просто на каждой итерации $user->journal, но тогда на каждый вызов будет запрос в бд, если у вас 100 пользователей, то это 100 запросов в бд. Для этого и существует метод load()

→ Ссылка