Готов загрузить отношения с помощью подзапроса - PullRequest
0 голосов
/ 28 мая 2019

Мне нужно присоединиться к таблице, которая связана с другой таблицей, и вернуть результат в мое представление в читаемых данных и отобразить правильные данные для каждого пользователя.Это мой код в контроллере.

Это работает, но данные из отношений отсутствуют, что я делаю не так?

    $GetUsers = User::groupBy('id');

    $all = OngoingTasks::with(['tasksdata', 'taskstatus'])->joinSub($GetUsers, 'users', function ($join) {
        $join->on('ongoing_tasks.user_id', '=', 'users.id');
    })->get();

OngoingTasks имеет отношение «один ко многим» с taskstatus иотношение один-к-одному с taskdata.

У пользователя есть один-ко-многим с текущими заданиями.

1 Ответ

1 голос
/ 28 мая 2019

Если OngoingTask принадлежит одному пользователю, то в модели OngoingTask добавьте:

public function user()
{
    return $this->belongsTo(User::class);
}

И вы можете изменить запрос на это:

OngoingTasks::with(['tasksdata', 'taskstatus', 'user'])->get();

Если вы хотите получить OngoingTasks на основе идентификаторов пользователей, даже если описанный выше подход сделает то же самое, но на случай, если вы отфильтруете пару пользователей, сделайте это вместо:

$userIds = User::pluck('id');

$all = OngoingTasks::with(['tasksdata', 'taskstatus', 'user'])->whereIn('user_id', $userIds)->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...