Blade视图中按分组值展示不同表格的实现需求
按商品类型分组展示订单表格
步骤1:后端控制器处理数据
在把数据传递到视图前,先对$orders按商品名称分组,用Laravel集合的groupBy方法即可:
// 控制器中获取订单数据后执行分组 $groupedOrders = $orders->groupBy('product_name'); return view('invoice', compact('groupedOrders'));
步骤2:Blade视图渲染分组表格
遍历分组后的数据,每个商品类型对应一个独立表格,还可按需添加分组小计:
@foreach($groupedOrders as $productName => $orders) <h3>{{ $productName }}</h3> <table border="1" cellpadding="8" cellspacing="0"> <thead> <tr> <th>No</th> <th>Nama Produk</th> <th>Jumlah</th> <th>Harga Satuan</th> <th>Total</th> </tr> </thead> <tbody> @foreach($orders as $index => $order) <tr> <td>{{ $index + 1 }}</td> <td>{{ $order->product_name }}</td> <td>{{ $order->quantity }}</td> <td>{{ number_format($order->unit_price, 0, ',', '.') }}</td> <td>{{ number_format($order->total_price, 0, ',', '.') }}</td> </tr> @endforeach <!-- 分组小计行 --> <tr> <td colspan="4" align="right"><strong>Subtotal {{ $productName }}</strong></td> <td><strong>{{ number_format($orders->sum('total_price'), 0, ',', '.') }}</strong></td> </tr> </tbody> </table> <br> @endforeach
注意事项
- 确保
$orders是Laravel集合实例(查询数据时用get()而非first()获取) - 代码中的字段名(如
product_name、quantity)要和你实际的数据库字段一致 - 表格样式、金额格式化规则可根据需求自行调整
内容的提问来源于stack exchange,提问作者Muhammad Rizky Safdila
相关产品推荐
相关产品推荐

