Laravel:排序依据相关表格,并与

问题描述:

这是我的模型Laravel:排序依据相关表格,并与

  • 用户
  • 角色

和关系的模型之间有很多很多。

我想这样的创建查询:

return User::with('roles')->orderBy('roles.id')->paginate(); 

我不想做join因为我创建了一个基类每一个模型。我也不想在get之后使用orderBy,因为它必须加载我所有的数据,之后我应该可以对它进行分类和分页。所以这不是一个好主意。

+0

没有加入是不可能的(AFAIK)。 –

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,这是您的主要关注点。

希望这会有所帮助。