【问题标题】:Laravel 5.0 Elequent Group By Related Table FieldLaravel 5.0 Elequent Group 按相关表字段
【发布时间】:2016-01-15 07:02:28
【问题描述】:

我有两个模型

类别:

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

交易:

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

我建立了一个包含列类别、月份和总计(交易)的表

在控制器中:

$cats =  Category::all();

视图中的结果: (在视图中,我循环 foreach 进行交易->cr​​eated_at 并对其进行格式化,因此它将显示月份 Word 而不是数字)

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

谢谢

【问题讨论】:

    标签: laravel-5


    【解决方案1】:

    由于这是一对多的关系(Category 有许多 Transactions),如果您想在迭代类别时显示交易属性,则需要聚合集合中的字段(transactions)。

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

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

    【讨论】:

      猜你喜欢
      • 2015-10-11
      • 1970-01-01
      • 1970-01-01
      • 2016-08-19
      • 1970-01-01
      • 2021-12-14
      • 2014-11-03
      • 1970-01-01
      • 2015-10-25
      相关资源
      最近更新 更多