第一次迭代打印两次数据

Data printed twice in first iteration

我正在使用 laravel blade。我尝试将数据数组打印为 table 中的一列。然后,我在循环中放置了一个条件表达式,以避免在同一列中打印相同的值。之后我在第一个iteration.Here中打印两次的数据是代码

    {{ $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 列中

对解决这个问题有什么帮助吗?

您缺少 td,请在您的 of 条件

中尝试此代码段
@if ($prevKomponen != $value['komponen'])

         <td>{{ $value['komponen'] }}***</td>  

        @else

                <td>-------</td>

       @endif    

          <td>{{ $prevKomponen = $value['komponen'] }}</td>

这一定是https://laravel.com/docs/5.5/blade#displaying-data造成的。它说 "You may display data passed to your Blade views by wrapping the variable in curly braces".

因此,当您点击这些行时:

{{ $prevKomponen = $value['komponen'] }}

它将显示为输出。

但是,如果你想忽略它,你可以添加'@'符号,就像这样:

@{{ $prevKomponen = $value['komponen'] }}

'@' 符号通知 Blade 渲染引擎表达式应该保持不变。希望这对你有所帮助。