这是我的模特
这些模型之间的关系是多对多的。
我想创建这样的查询:
return User::with('roles')->orderBy('roles.id')->paginate();
我不想要join
,因为我为每个模型创建了一个基类。我也不想在orderBy
之后使用get
因为它必须加载我的所有数据,之后我应该能够对它进行排序和分页。所以这不是一个好主意。
答案 0 :(得分:1)
您可以尝试这样的事情:
return User::with(['roles' => function ($query) {
$query->orderBy('id', 'desc');
}])->paginate();
但是这只会订购热切的加载属性,但是如果你有兴趣使用join,你可以这样:
return User::with('roles')
->join('roles', 'user.id', '=', 'roles.user_id')
->orderBy('roles.id', 'desc')
->paginate();
在此,您可以轻松使用paginate
,这是您最关心的问题。
希望这有帮助。
答案 1 :(得分:0)
User::where('role_id','!=','0')->orderBy('role_id','DESC')->paginate(10);