我使用了laravel刀片。我尝试将数据数组打印为表中的列。然后,我在循环中放入一个条件表达式,以避免在同一列中打印相同的值。之后,我的数据在第一次迭代中打印了两次。这是代码
{{ $prevKomponen = null }}
{{ $prevKegiatan = null }}
@foreach($data as $key => $value)
<tr>
@if ($prevKomponen != $value['komponen'])
<td>{{ $value['komponen'] }}***</td>
@else
<td>-------</td>
@endif
{{ $prevKomponen = $value['komponen'] }}
<td>{{$value['kegiatan']}}</td>
<td>{{$value['subkegiatan']}}</td>
<td>{{$value['rincian']}}</td>
<td>{{$value['jumlah']}}</td>
<td>{{$value['harga']}}</td>
<td>{{$value['total_harga']}}</td>
</tr>
@endforeach
这是结果。第1列中的数据也印在第2栏
中有任何帮助解决这个问题吗?
答案 0 :(得分:0)
您错过了 td ,请在 if 条件中尝试此snipet
@if ($prevKomponen != $value['komponen'])
<td>{{ $value['komponen'] }}***</td>
@else
<td>-------</td>
@endif
<td>{{ $prevKomponen = $value['komponen'] }}</td>
答案 1 :(得分:0)
这必须由https://laravel.com/docs/5.5/blade#displaying-data引起。它说 “您可以通过将变量包装在花括号中来显示传递给Blade视图的数据”。
所以,当你点击这一行时:
{{ $prevKomponen = $value['komponen'] }}
它将显示为输出。
但是,如果你想忽略它,你可以添加'@'符号,就像这样:
@{{ $prevKomponen = $value['komponen'] }}
'@'符号通知Blade渲染引擎表达式应保持不变。希望这对你有帮助。