Eloquent - Laravel无法在急切加载中使用orderBy

时间:2015-03-26 09:27:46

标签: php laravel laravel-4 eloquent

我无法让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();

1 个答案:

答案 0 :(得分:0)

它不起作用,因为它以这种方式工作,因此您首先获取所有Book记录,然后在另一个查询中获取View关系。这就是急切加载的方式。因此,如果您想按关系表中的某些列进行排序,则必须像在第二个代码段中那样加入它。