orderBy on hasMany 与 laravel 中分页的关系

问题描述

Act Review 通过这种关系连接到“Act_master”。 One-Act 可以有很多评论

public function reviews() {
    return $this->hasMany('ActReview','act_id','id');
}

问题我应该如何按照从最大评论数到最小评论数来获得动作列表顺序。

到目前为止我尝试了什么?

添加了带有“whereHas”的查询,但结果列表没有得到期望的结果,作为从最高到最低评论的行为列表。

我也试过“WITH”,但也没有用。

如果可能,请指导我从最大评论人数到最低评论人数的行为列表。

   $list   = ActMaster::where('status','=','1');

    $list = $list->whereHas('reviews',function ($query) {
        $query->select(\DB::raw('count(*) as row_count'));
        $query->where('published','1');
        $query->orderBy('row_count','desc');
        $query->groupBy('act_id');                
    });

    $list = $list->paginate(10);

解决方法

试试这个:

map