繁体   English   中英

Laravel:相关表中的 Orderby 和

[英]Laravel: Orderby in related table and with

这是我的模型

  • 用户
  • 角色

这些模型之间的关系是多对多的。

我想创建这样的查询:

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

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

你可以尝试这样的事情:

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

希望这可以帮助。

User::where('role_id','!=','0')->orderBy('role_id','DESC')->paginate(10);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM