在我的blade.php文件中,我试图合并两个foreach循环以在表中显示数据。我曾尝试使用嵌套循环之类的方法,但是它不起作用。
@foreach($cat->products as $idx => $product)
<tr ng-init="item.items[{{$cat->id}}][{{$idx}}] = {};">
@foreach ($queryInv as $querInvs)
<td>{{$product->sku}}</td>
<td>{{$product->name}}</td>
<td class="text-right">{{{$querInvs->total or 0}}}</td>
</tr>
@endforeach
@endforeach
我只需要将总数据插入表中即可。现在,总计可以正确显示,但是它将重复表中的sku和名称。
答案 0 :(得分:0)
定义一个数组,将其用作“标志”,并在每次迭代时检查当前产品SKU是否不在“标志”数组中。如果不是,则显示,然后将当前产品SKU添加到已处理SKU列表中,然后照常继续操作。
@php $skus = [] @endphp
@foreach($cat->products as $idx => $product)
@if (!in_array($product->sku, $skus))
<tr ng-init="item.items[{{$cat->id}}][{{$idx}}] = {};">
@foreach ($queryInv as $querInvs)
<td>{{$product->sku}}</td>
<td>{{$product->name}}</td>
<td class="text-right">{{{$querInvs->total or 0}}}</td>
@endforeach
</tr>
@php array_push($skus, $product->sku); @endphp
@endif
@endforeach
注意:您正在使用Laravel 4,Laravel的当前版本是5.7,我绝对会更新并使用最新版本。
阅读材料