Laravel 调用未定义的方法Illumb\Database\Eloquent\Builder::sortByDesc()
我正在尝试获取5个最近项目的列表,并根据创建日期字段按降序对它们进行排序。我使用Model::with()来避免n+1问题。代码如下:Laravel 调用未定义的方法Illumb\Database\Eloquent\Builder::sortByDesc(),laravel,eloquent,Laravel,Eloquent,我正在尝试获取5个最近项目的列表,并根据创建日期字段按降序对它们进行排序。我使用Model::with()来避免n+1问题。代码如下: $recentProjects = Project::with('visits','team') ->whereYear('created_at',now()->year) ->sortByDesc('create
$recentProjects = Project::with('visits','team')
->whereYear('created_at',now()->year)
->sortByDesc('created_at')->take(5)
->get();
但是,我得到了一个错误:
调用未定义的方法Illumb\Database\Eloquent\Builder::sortByDesc()
我尝试了不同的方法,比如
Project::orderBy()
后跟with,但也没有进行任何训练。sortByDesc方法按属于模型中某个有说服力的关系的字段对集合进行排序
如果您试图使用sortByDesc
对模型本身(您当前的模型对象)的集合进行排序,请使用orderBy
而不是sortByDesc
:
Project::orderBy('created_at', 'DESC')
->with('visits','team')
->whereYear('created_at', now()->year)
->take(5)
->get();
它应该是
Project::orderBy('created_at','DESC')
或latest('created_at')->take(5)
。