如何根据枢轴 table - Laravel 4 / Eloquent 上的关系计数进行排序

How to order by a count of relations on a pivot table - Laravel 4 / Eloquent

我有 table 个视频、table 个用户和 table 个 "favourites" 的枢轴(喜欢视频的人)。我想按最喜欢的顺序排列查询排名的结果。

我将在下面定义table和模型的相关字段。

视频Table: id, 标题

用户Table: 编号

收藏夹Table: id, video_id, user_id

视频模型:

public function favourited()
{

    return $this->belongsToMany('User', 'favourites', 'video_id', 'user_id'); 

}

这是我尝试使用 Eloquent

进行操作的 sql 示例
SELECT
  videos.title,
  COUNT(favourites.id) AS FavouriteCount
FROM videos
LEFT JOIN favourites ON videos.id = favourites.video_id
GROUP BY videos.id
ORDER BY FavouriteCount desc
DB::table('videos')
->leftJoin('favourites', 'videos.id', '=', 'favourites.video_id')
->select('videos.title',DB::raw('count(favourites.id) as FavouriteCount'))
->groupBy('videos.id')
->orderBy('FavouriteCount', 'desc')
->get();

有关详细信息,请参阅此处 http://laravel.com/docs/4.2/queries