我无法让orderBy
语句在像Laravel docs这样的热切加载函数中工作
Book::with(['view' => function ($q)
{
$q->orderBy('total', 'desc');
}])->get();
但是当我使用join
语句时,它会没问题。
Book::join('views', 'views.book_id', '=', 'books.id')
->orderBy('total', 'desc')->get();
答案 0 :(得分:0)
它不起作用,因为它以这种方式工作,因此您首先获取所有Book
记录,然后在另一个查询中获取View
关系。这就是急切加载的方式。因此,如果您想按关系表中的某些列进行排序,则必须像在第二个代码段中那样加入它。