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 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?