首页 > 解决方案 > Laravel 5.7 - 多对多关系 - 选择具有提供的类型 ID 数组的电影

问题描述

这是我的控制器代码:

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 的引用。

我需要从表中选择所有具有用户选择的流派的电影。

例如,id's = [1, 4, 9]从包含这些流派 id 的数据透视表电影中选择的数组和。

提前致谢!

编辑: 一般问题在于return回调内部以及我稍后处理数据的方式。感谢您的回答,我很感激!:)

标签: phpmysqllaraveleloquentmodel

解决方案


您做了错误的查询,请尝试给定的查询。

return Movie::with(['genres'])->whereHas('genres' ,function ($query) use ($genres){
    $query->whereIn('id', $genres);
})->paginate(10);

推荐阅读