我有一个类似的查询:
$users = User::with('role')
->get();
如何通过相关表格订购结果,如下所示:
$users = User::with('role')
->orderBy('role.id', 'DESC')
->get();
有没有办法在不加入role
表的情况下执行此操作(因为我们已经在进行with('role')
?
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以随时轻松地对返回的集合进行排序......
$users = User::with('role')
->get()
->sortBy(function($user, $key)
{
return $user->role->id;
});
这假设用户拥有一个或者属于一个角色。如果您的关系可以返回多个角色,那么它会变得有点复杂,因为您需要决定要排序的用户角色。
答案 2 :(得分:0)
$users = User::with('role')->orderBy('role_id', 'DESC')
->get();
如果您尝试对用户的角色进行排序,那么pocho的答案是正确的。
$users = User::with(array('role' => function($query)
{
$query->orderBy('id', 'DESC');
}))->get();