Laravel 5.2显示他们本周发布的每个用户帖子作为计数

时间:2017-04-22 15:05:08

标签: php laravel laravel-5

我正在尝试显示所有用户的列表以及他们本周发布的帖子数量,以及他们上周在表单中制作了多少帖子

我在两个表之间使用了hasMany关系以及它自己正在运行的关系。

return $this->hasMany('App\applications', 'user_id');

在视图内部我显示的帖子数是

{{$user->applications->count()}}

我坚持的主要事情是SQL Query或使用控制器功能内部的碳来实现这一点。

如果有人在你的帮助之前做了这件事,我将不胜感激! 谢谢。

1 个答案:

答案 0 :(得分:3)

由于您希望为许多用户计算帖子,因此请急切加载数据并使用withCount()

User::withCount(['applications' => function($q) {
    $q->whereBetween('created_at', [Carbon::now()->startOfWeek(), Carbon::now()]);
}])->get();
  

如果您想要计算关系中的结果数而不实际加载它们,您可以使用withCount方法,该方法会在结果模型上放置{relation}_count列。

https://laravel.com/docs/5.4/eloquent-relationships#counting-related-models