我有以下代码,它基本上得到了episodeNumber(很多)的降序中的查询结果,这是TheNumbers
的内部关系模型(一对多)。
$nearEpisodes = TheEpisode::where("seriesID", $seriesID)->get()->sortByDesc(function ($item) {
return $item->TheNumbers->max('episodeNumber');
})->values();
我可以在不使用sortByDesc
的情况下做同样的事情,而是使用orderBy
来获得更好的效果吗?
这将允许我在之后对其进行分页。
答案 0 :(得分:0)
不确定您的表格是如何关联的,但您可以使用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);