Laravel 根据输入值分组 div

Laravel grouping div according to their input value

我正在尝试使用 laravel 8 的运动项目。 div 中有一个隐藏的输入,如果值为 1,它会创建一个 div 和一个名为“superseted”的 class 并将其全部收集在其中。如下:

<div class="superseted">
    <div><input type="hidden" value="1"> Products</div>
    <div><input type="hidden" value="1"> Products2</div>
</div>

但并非所有输入值都是 1。 数据库中的值是这样从上到下排序的,

1, 1、 0, 0, 1、 1,

所以,我们需要按照这样的结构进行分组,

<div class="program">
    <!-- grouped -->
    <div class="superseted">
        <div> <input type="hidden" value="1"> Products</div>
        <div> <input type="hidden" value="1"> Products2</div>
    </div>
    <!-- This is not grouped -->
    <div><input type="hidden" value="0"> Products3</div>
    <div><input type="hidden" value="0"> Products4</div>
    <!-- grouped -->
    <div class="superseted">
        <div> <input type="hidden" value="1"> Products5</div>
        <div> <input type="hidden" value="1"> Products6</div>
    </div>
</div>

我们需要创建一个这样的结构。我们正在使用的 foreach 无法正常工作。这是 foreach

<div class="program">
    @foreach($d->movementdetail as $detail)
        <div class="{{ $detail->movement_superset==1 ? "superseted" :  "" }}">
            <div><input type="hidden" value="{{$detail->movement_superset}}">ProductName</div>
            @if($detail->movement_superset==1)
                <input type="checkbox" class="supersetChk">
            @endif
        </div>
    @endforeach
</div>

我们如何得到我们想要的结构?谢谢。

您可以试试下面的代码:

<div class="program">
    @php
        $last_value = 0;
    @endphp
    @foreach($d->movementdetail as $detail)
        <!-- superset div tag control -->
        @if ($detail->movement_superset == 1)
            @if(!$last_value)
                <div class="superseted">
            @endif
        @else
            @if($last_value)
                </div>
            @endif
        @endif
        <!-- superset div tag control ends -->

        <div><input type="hidden" value="{{$detail->movement_superset}}">{{$detail->movement_superset}}</div>
        @if($detail->movement_superset==1)
            <input type="checkbox" class="supersetChk">
        @endif

        @php
            $last_value = $detail->movement_superset;
        @endphp
    @endforeach
</div>