【发布时间】:2018-05-14 06:37:12
【问题描述】:
我有两张表,发票和服务。我正在尝试查询 Invoices with Services 作为关系。我有按日期分组的发票。对集合进行分组后,是否有适当的方法来汇总关系上的列?这是我找到的唯一解决方案,但它涉及在我看来使用 php 代码。如果可能的话,我想将 php 保留在控制器中。
这是我的控制器:
$invoices = \App\Invoice::
with('services')
->orderBy('date')
->get()
->groupBy(function($item) {
return Carbon::createFromFormat('Y-m-d', $item->date)->format('Y-M');
});
这是我的看法:
@foreach ($invoices as $key=>$i)
<tr>
<td>{{$key}}</td>
<td class="text-right">{{$i->sum('discount')}}</td>
<td class="text-right">
<?php $sum = 0;?>
@foreach($i as $x)
<?php $sum += $x->services->sum('rate') ?>
@endforeach
{{$sum}}
</td>
</tr>
@endforeach
【问题讨论】:
-
如果我正确理解了这段代码,
$invoices(在分组依据之后)实际上代表了一个日期数组,其中包含发票。我对吗?只是想了解一下这里的数据结构