【问题标题】:Laravel 5.2 Display each users posts they've made this week as countLaravel 5.2 显示他们本周发布的每个用户帖子作为计数
【发布时间】:2017-04-22 23:18:12
【问题描述】:

我正在尝试在表单中显示所有用户的列表,以及他们每个人本周发了多少帖子,以及他们上周发了多少帖子

我在两个表之间使用了 hasMany 关系,并且它自身的关系正在发挥作用。

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

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

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

我坚持的主要事情是 SQL Query 或在控制器函数中使用 Carbon 来实现这一点。

如果有人在您的帮助之前这样做过,将不胜感激! 谢谢。

【问题讨论】:

标签: php laravel laravel-5


【解决方案1】:

由于您要统计许多用户的帖子,因此急切加载数据并使用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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    相关资源
    最近更新 更多