刀片模板布局结构

Posted

技术标签:

【中文标题】刀片模板布局结构【英文标题】:Blade Template Layout Structure 【发布时间】:2015-04-24 11:34:12 【问题描述】:

我需要为每 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>

等等!我已经搜索过这个问题,但只是找到了This link,但这实际上与我的观点不同。 谢谢

【问题讨论】:

【参考方案1】:

Use 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

【讨论】:

array_chunk 需要一个数组而不是一个对象...?? 哦,是的。只需先转换为数组。请参阅我的更新答案。 假设 $email-&gt;attachment 是一个 Laravel 集合,你可以简单地做 $email-&gt;attachment-&gt;chunk(3) @lukasgeiter - 很酷 - 不知道。每天学些新东西。我想我需要花更多时间研究 Collections 方法。 @TheShiftExchange 不客气 ;) 是的,集合类有一些非常好的方法。【参考方案2】:

试试这个,比生成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>

【讨论】:

以上是关于刀片模板布局结构的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 刀片模板停止重新加载主布局

Laravel 刀片模板扩展了两种不同的布局

是否可以在 Laravel (4) 刀片模板中获取视图/布局名称

刀片模板递归包括

在刀片模板中包含 js 文件

Laravel刀片模板差异