PHP laravel sortBy to orderBy
我有下面的代码,它基本上以降序获得epiodeNumber(many)的查询结果,这是PHP laravel sortBy to orderBy,php,laravel,eloquent,Php,Laravel,Eloquent,我有下面的代码,它基本上以降序获得epiodeNumber(many)的查询结果,这是TheNumbers的关系模型(一对多)中的epiodeNumber $nearEpisodes = TheEpisode::where("seriesID", $seriesID)->get()->sortByDesc(function ($item) { return $item->TheNumbers->max('episodeNumber'); })->values
TheNumbers
的关系模型(一对多)中的epiodeNumber
$nearEpisodes = TheEpisode::where("seriesID", $seriesID)->get()->sortByDesc(function ($item) {
return $item->TheNumbers->max('episodeNumber');
})->values();
我是否可以在不使用sortByDesc
的情况下执行相同的操作,而使用orderBy
来提高性能
这将允许我在之后对其进行分页。不确定表是如何链接的,但您可以使用
join
将模型分页为:
TheEpisode::where("seriesID", $seriesID)
->join('TheNumbers', 'seriesID.id', '=', 'TheNumbers.TheEpisode_id')
->select(DB::raw('TheEpisode.*, MAX(episodeNumber) as `max_episodeNumber`'))
->groupBy('TheEpisode_id')
->orderBy('max_episodeNumber', 'desc')
->paginate(10);
TheEpisode::where(“seriesID”,$seriesID)->orderBy('epiodeNumber','desc')。->get();试试这个…
epiodenumber
在TheNumbers
中,它不存在于关系函数(theepised模型)的epiodecode中,对epiodenumber执行orderBy()。我不需要对编号进行排序,我需要对epiodecode进行排序,然后试试这个,theepiode::where(“seriesID”,$seriesID)->orderBy('id','desc')。->get();