Laravel - 在嵌套关系中订购

aBh*_*jit 4 laravel eloquent

我有一个像这样的雄辩查询:

Forum::with(['comments.user'])->find($id);
Run Code Online (Sandbox Code Playgroud)

这将返回嵌套结果forum -> its comments -> user who commented.

我如何orderBy()comments桌子上申请?

luk*_*ter 12

在调用时with(),可以在数组中传递闭包,以便将更多查询元素添加到预先加载的查询中:

Forum::with([
    'comments' => function($q){
         $q->orderBy('created_at', 'desc');
     },
    'comments.user'
])->find($id);
Run Code Online (Sandbox Code Playgroud)

现在你要指定commentscomments.user,但不担心它会不会不仅仅是运行更多的查询comments.user.