doubangzhang6992 2015-09-17 17:57
浏览 46
已采纳

Laravel按照Eloquent的关系排序

Many to many relationship between users and reports. Any user can have many reports. I want to sort the reports for a user by the created_at column. How would i finish this below to do that??

$x = User::find(1)->report.....

For anyone wondering, you add parenthesis to the end of a relationship method when you are chaining on a function like orderBy() you leave it off when you just want the collection. IF you need to alter the returned collection by sorting or something you would add parenthesis because you are in fact ADDING(CHAINING) another method behind the relationship.

  • 写回答

1条回答 默认 最新

  • douwen5246 2015-09-17 18:03
    关注
    $x = User::find(1)->reports()->orderBy('created_at')->get();
    

    See the doc. Also here

    From the second link:

    Once the relationship is defined, you may access the user's roles using the roles dynamic property:

    $user = App\User::find(1);
    
    foreach ($user->roles as $role) {
        //
    }
    

    Of course, like all other relationship types, you may call the roles method to continue chaining query constraints onto the relationship:

    $roles = App\User::find(1)->roles()->orderBy('name')->get();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序
  • ¥15 多址通信方式的抗噪声性能和系统容量对比