【问题标题】:Eloquent get row with most attached relationshipsEloquent 获取关联关系最多的行
【发布时间】:2015-03-26 21:00:48
【问题描述】:

我有一个“项目”表和一个“用户”表。 用户可以喜欢项目。这是使用数据透视表的多对多关系。

我希望获得最多喜欢的项目。 有没有使用 eloquent 实现这一目标的简单方法?

我现在能想到的唯一方法是构建单独的查询,我希望避免这种情况。

谢谢。

【问题讨论】:

    标签: mysql laravel eloquent


    【解决方案1】:

    您可以加入您的数据透视表并计算类似的结果

    $projects = Project::join('project_likes as pl', 'pl.project_id', '=', 'projects.id')
    ->groupBy('projects.id')
    ->orderBy('count','desc')
    ->get(['projects.*', DB::raw('COUNT(pl.project_id) as count')]);
    

    我认为这应该可行。如果没有,请告诉我,我会检查并编辑我的答案。当然,如果您愿意,可以添加->limit(1) 以仅获得一个结果。或者使用 first 代替 get 与相同的参数。

    【讨论】:

      猜你喜欢
      • 2019-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-05
      • 1970-01-01
      • 2017-09-21
      • 2013-12-14
      • 2017-01-12
      相关资源
      最近更新 更多