我想获取用户活动列表。 但这应该只给我5个用户,它们的活动最多,并且按活动DESC的总和排序。
Thread.Sleep
感谢帮助!
答案 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);