我正在尝试显示所有用户的列表以及他们本周发布的帖子数量,以及他们上周在表单中制作了多少帖子
我在两个表之间使用了hasMany关系以及它自己正在运行的关系。
return $this->hasMany('App\applications', 'user_id');
在视图内部我显示的帖子数是
{{$user->applications->count()}}
我坚持的主要事情是SQL Query或使用控制器功能内部的碳来实现这一点。
如果有人在你的帮助之前做了这件事,我将不胜感激! 谢谢。
答案 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