如何在laravel中找到过去24小时内创建的帖子最高的用户?按帖子数量降序排列。
如果我没记错的话,您是在询问在过去 24 小时内创建的帖子数量最多的用户。
为此,请执行以下操作:
$users = User::withCount(['posts' => function ($query) {
$query->where('created_at', '>=', carbon()->now()->subDay());
}])->orderBy('posts_count', 'DESC')
->get();
Run Code Online (Sandbox Code Playgroud)
正如文档所述,您可以向查询添加约束。
计算相关模型
如果您想计算关系中的结果数量而不实际加载它们,您可以使用该
withCount方法,它将{relation}_count在您的结果模型上放置一列。例如:Run Code Online (Sandbox Code Playgroud)$posts = App\Post::withCount('comments')->get(); foreach ($posts as $post) { echo $post->comments_count; }您可以为多个关系添加“计数”以及向查询添加约束:
Run Code Online (Sandbox Code Playgroud)$posts = Post::withCount(['votes', 'comments' => function ($query) { $query->where('content', 'like', 'foo%'); }])->get(); echo $posts[0]->votes_count; echo $posts[0]->comments_count;
| 归档时间: |
|
| 查看次数: |
1780 次 |
| 最近记录: |