Laravel 调用未定义的方法Illumb\Database\Eloquent\Builder::sortByDesc()

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

我正在尝试获取5个最近项目的列表,并根据创建日期字段按降序对它们进行排序。我使用Model::with()来避免n+1问题。代码如下:

  $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)