在第一次迭代中打印两次数据

时间:2017-11-23 10:44:02

标签: laravel-5 laravel-blade laravel-excel

我使用了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栏

enter image description here

有任何帮助解决这个问题吗?

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渲染引擎表达式应保持不变。希望这对你有帮助。