Laravel:排序依据相关表格,并与
问题描述:
这是我的模型Laravel:排序依据相关表格,并与
- 用户
- 角色
和关系的模型之间有很多很多。
我想这样的创建查询:
return User::with('roles')->orderBy('roles.id')->paginate();
我不想做join
因为我创建了一个基类每一个模型。我也不想在get
之后使用orderBy
,因为它必须加载我所有的数据,之后我应该可以对它进行分类和分页。所以这不是一个好主意。
答
User::where('role_id','!=','0')->orderBy('role_id','DESC')->paginate(10);
+0
通常最好是解释一个解决方案,而不是只发布一些匿名代码行。你可以阅读[我如何写一个好的答案](https://stackoverflow.com/help/how-to-answer),还有[完全解释基于代码的答案](https://meta.stackexchange.com /问题/ 114762 /解释-entirely-%E2%80%8C%E2%80%8Bcode基于-答案)。 –
答
你可以尝试这样的事情:
return User::with(['roles' => function ($query) {
$query->orderBy('id', 'desc');
}])->paginate();
但这只会责令预先加载的属性,但如果你有兴趣使用的加入,你可以有这样的事情:
return User::with('roles')
->join('roles', 'user.id', '=', 'roles.user_id')
->orderBy('roles.id', 'desc')
->paginate();
在此您可以轻松使用paginate
,这是您的主要关注点。
希望这会有所帮助。
没有加入是不可能的(AFAIK)。 –