我有一个表,其中的列标题为1、2、3、4和5。现在,我需要在每列下显示数量分别为1、2、3、4和5的产品,也就是说,如果有数量相同的产品4,它将显示在第4列下。
我尝试了groupBy和foreach,但没有得到预期的结果。
在我的控制器$products = Product::all();
我认为:
<table class="table">
<thead>
<tr>
<th>1</th>
<th>2</th>
<th>3</th>
<th>4</th>
<th>5</th>
</tr>
</thead>
<tbody>
<tr>
@for($i = 1; $i < 6; i++)
@foreach($products as $product)
@if($product->quantity == $i)
<td>{{ $product->name }}</td>
@else
<td>{{ "-" }}</td>
@endif
@endforeach
@endfor
</tr>
</tbody>
答案 0 :(得分:0)
尝试一下:
$products = Product::get()->groupBy('quantity');
然后在您的表格中:
<table class="table">
<thead>
<tr>
<th>1</th>
<th>2</th>
<th>3</th>
<th>4</th>
<th>5</th>
</tr>
</thead>
<tbody>
<tr>
@for($i = 1; $i <= 5; i++)
@if(!empty($products[$i]))
@foreach($products as $product)
<td>{{ $product->name }}</td>
@endforeach
@else
<td>-</td>
@endif
@endfor
</tr>
</tbody>