叶片模板布局结构


Blade Template Layout Structure

我需要为每3个附件创建一行。类似的东西

  @foreach($email->attachment as $attach)
     <div class="row">
       <div class="col-lg-4"></div>
       <div class="col-lg-4"></div>
       <div class="col-lg-4"></div>
    </div>
@endforeach 
   <div class="row">
       <div class="col-lg-4">1st attachment</div>
       <div class="col-lg-4">2nd attachment</div>
       <div class="col-lg-4">3rd attachment</div>
  </div>
  <div class="row">
      <div class="col-lg-4">4th attachment</div>
      <div class="col-lg-4">5th attachment</div>
      <div class="col-lg-4">6th attachment</div>
</div>

等等!我已经搜索了这个问题,但刚刚找到了这个链接,但从我的角度来看,它实际上是不同的。感谢

使用array_chunk-它是为每个目的而设计的-这样你就可以将数组切成子大小,并在每个组中循环

@foreach (array_chunk($email->attachment->toArray(), 3, true) as $array)
    <div class="row">
    @foreach($array as $attachment)
         <div class="col-lg-4">{{ $attachment['id'] }}</div>
    @endforeach
    </div>
@endforeach

使用@Lukasgeiter的评论-如果它是Laravel Collection ,你也可以这样做

@foreach ($email->attachment->chunk(3) as $array)
    <div class="row">
    @foreach($array as $attachment)
         <div class="col-lg-4">{{ $attachment->id }}</div>
    @endforeach
    </div>
@endforeach

试试这个,它比生成2个数组更快:

  <div class="row">
    @foreach( $email->attachment as $index => $attach)
      <div class="col-lg-4">{{$attach}}</div>
      @if( $index+1 === 0)
        </div><div class="row">
      @endif
    @endforeach
  </div>