Laravel 5.0 Elequent Group By Related Table Field

时间:2015-10-16 13:38:35

标签: laravel-5

我有2个型号

类别:

 public function transaction()
{
    return $this->hasMany('App\Transaction');
}

交易:

    public function category()
{
    return $this->belongsTo('App\Category');
}

我构建了一个包含列Category,Month和Total(事务)

的表

在控制器中:

$cats =  Category::all();

视图中的结果: (在视图中我循环foreach for transactions-> created_at并格式化它,因此它将显示月份Word而不是数字)

Sample View

问题是,如何使月份在组中,所以它不会在同一个月循环,同样发生在总数上,它会分组;总数量。

谢谢

1 个答案:

答案 0 :(得分:0)

由于这是一对多关系(类别有很多事务),如果要在类别中迭代时显示事务属性,则需要聚合集合中的字段(事务)。

对于作为数字的总计字段,解决方案很简单Laravel's sum() function of a collection,假设这是您想要的。

至于月份,它取决于您希望在Month列上显示的内容,然后决定用于操作每个事务的created_at的聚合函数。您无法通过sum函数添加日期,但您可能需要进行一些自定义计算,因此请考虑使用the reduce function of a collection