PHP laravel sortBy to orderBy

时间:2016-12-26 10:34:48

标签: php laravel eloquent

我有以下代码,它基本上得到了episodeNumber(很多)的降序中的查询结果,这是TheNumbers的内部关系模型(一对多)。

$nearEpisodes = TheEpisode::where("seriesID", $seriesID)->get()->sortByDesc(function ($item) {
    return $item->TheNumbers->max('episodeNumber');
})->values();

我可以在不使用sortByDesc的情况下做同样的事情,而是使用orderBy来获得更好的效果吗?

这将允许我在之后对其进行分页。

1 个答案:

答案 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);