Laravel查询生成器-按和求和

时间:2019-04-22 21:26:43

标签: laravel laravel-query-builder

我想获取用户活动列表。 但这应该只给我5个用户,它们的活动最多,并且按活动DESC的总和排序。

Thread.Sleep

感谢帮助!

1 个答案:

答案 0 :(得分:0)

您可以使用withCount查询生成器功能来获取特定关系的数量。

然后您可以按该计数进行排序,并使用take收集功能从收集中获取所需数量的物品。您的情况是5。

$now = Carbon::now();
$lastWeekMonday = Carbon::now()->subWeek(1)->startOfWeek()->toDateString();
$mondayThisWeek = Carbon::now()->startOfWeek()->toDateString();

$uses = User::with('activities')
            ->withCount('activities')
            ->where('created_at', '>=', $lastWeekMonday )
            ->where('created_at', '<', $mondayThisWeek )
            ->get()
            ->sortByDesc('activities_count')
            ->take(5);