Laravel按照Eloquent的关系排序

时间:2015-09-17 17:57:10

标签: php laravel-5 eloquent

用户和报告之间的多对多关系。任何用户都可以有很多报告。我想通过created_at列为用户排序报表。我将如何完成以下操作呢?

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

对于任何想知道的人,当你链接一个像orderBy()这样的函数时,你可以在关系方法的末尾添加括号,当你想要收集它时就把它关掉。如果你需要通过排序或其他东西来改变返回的集合,你会添加括号,因为你实际上是添加(链接)关系背后的另一种方法。

1 个答案:

答案 0 :(得分:0)

$x = User::find(1)->reports()->orderBy('created_at')->get();

请参阅doc。另外here

从第二个链接:

  

定义关系后,您可以使用角色动态属性访问用户的角色:

$user = App\User::find(1);

foreach ($user->roles as $role) {
    //
}
  

当然,像所有其他关系类型一样,您可以调用roles方法继续将查询约束链接到关系上:

$roles = App\User::find(1)->roles()->orderBy('name')->get();