Laravel 5.7 - отношение «многие ко многим» - выберите фильмы, которые имеют предоставленный массив идентификаторов жанра - PullRequest
1 голос
/ 27 февраля 2020

Это код моего контроллера:

if ($request->genre && !$request->search) {
    $genres = explode(',', $request->genre);
    return Movie::with('genres')->whereHas('genres', function ($q) use ($genres) {
        return $q->whereIn('id', $genres);
    })->paginate(10);
}

Моя сводная таблица содержит movie_id и genre_id. Таблицы как фильмов, так и жанров не содержат ссылки на идентификаторы друг друга.

Мне нужно выбрать из таблицы все фильмы, жанры которых выбраны пользователем.

Например, массив из id's = [1, 4, 9] и выбрать из сводной таблицы фильмы, которые содержат идентификаторы жанра.

Заранее спасибо!

РЕДАКТИРОВАТЬ: Общая проблема была return внутри обратного вызова и способ, которым я обрабатывал данные позже. Спасибо за ваши ответы, я ценю это! :)

1 Ответ

0 голосов
/ 27 февраля 2020

Вы сделали неправильный запрос, попробуйте данный запрос.

return Movie::with(['genres'])->whereHas('genres' ,function ($query) use ($genres){
    $query->whereIn('id', $genres);
})->paginate(10);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...