如何计算 laravel blade 上的 +-*/%?

How can I calculate the +-*/% on laravel blade?

@foreach ($searchalls as $searchall)
    @php
      $i=1
    @endphp
     {{$i }} ={{$loop->iteration}}%3
     @if($i == 1 )
      <div class="row clearfix">
       @endif 
        <div class="col-md-4 column">
                <h2>
                {{$search_all->id }}Heading
                </h2><p>once OK.
                </p>
                <p>
                     <a class="btn" href="#">View details »</a>
                </p>
       </div>

我在 blade 上得到的结果是

1 =1%3
1 =2%3
1 =3%3
1 =4%3

取不到余数?

我该如何解决这个问题?

这样做

@foreach ($searchalls as $searchall)

@php
    $i = 1;
    $i = $loop->iteration%3;
@endphp

@if( $i == 1 )
    <div class="row clearfix">
@endif

<div class="col-md-4 column">
    <h2>
        {{ $search_all->id }}Heading
    </h2>
    <p>
        once OK.
    </p>
    <p>
        <a class="btn" href="#">View details »</a>
    </p>
</div>

一旦你的 blade 模板字符串被呈现,你基本上无法与 php 使用 == 进行比较,我认为这发生在

{{ $i }} = {{ $loop->iteration }}%3

如果您只想连续显示 3 列,那么您可以使用更好的方法 chunk 方法

@foreach ($searchalls->chunk(3) as $chunk)
<div class="row clearfix">
    @foreach($chunk as $searchall)
         <div class="col-md-4 column">
            <h2>{{$searchall->id }}Heading</h2>
            <p>once OK.</p>
            <p>
                <a class="btn" href="#">View details »</a>
            </p>
         </div>
    @endforeach
</div>
@endforeach

如果你只想在 dom 中进行数学运算,你可以使用它,或者 @php @endphp 来防止显示结果

   @foreach ($searchalls as $searchall)
    {{$i = $loop->iteration %3}}
   @endforeach

of 立即在 if 语句中

   @foreach ($searchalls as $searchall)
       @if($loop->iteration %3 == 1 )
           <div class="row clearfix">
       @endif 
   @endforeach

编辑:使用弹性框

如果你想让数字动态化你可以使用 flexbox

   @foreach ($searchalls->chunk(3) as $chunk)
        <div style="display: flex;">
            @foreach($chunk as $searchall)
                <div style="flex:1">{{$searchall->id}}</div>
            @Endforeach
        </div>
    @endforeach

您可以将其设置为您想要的任意数量的列,而不是 3