用户和报表之间的多对多关系。任何用户都可以拥有多个报告。我想根据created_at列对用户的报表进行排序。我该如何完成下面的工作??
$x = User::find(1)->report.....
对于任何想知道的人来说,当您链接像orderBy()这样的函数时,您在关系方法的末尾添加括号,当您只想要集合时,您将其省略。如果您需要通过排序或其他方式更改返回的集合,则需要添加括号,因为您实际上是在添加(链接)关系后面的另一个方法。
$x = User::find(1)->reports()->orderBy('created_at')->get();
查看文档。还在这里
从第二个链接:
一旦定义了关系,您就可以使用roles动态属性访问用户的角色:
$user = AppUser::find(1);
foreach ($user->roles as $role) {
//
}
当然,像所有其他关系类型一样,您可以调用roles方法来继续将查询约束链接到关系上:
$roles = AppUser::find(1)->roles()->orderBy('name')->get();