如何为此结构创建逻辑?
[1, 2, 3]
[4, 5, 6]
我有猫头鹰旋转木马的照片。它应该显示六张照片,三列中的三张,接下来的六张照片应在第二张幻灯片中,第二张幻灯片,第三次幻灯片等等...
当我这样做时:
<div class="row">
@foreach($videos as $key => $video)
@if(($key)%7==0)
</div><div class="row">
@endif
<div class="col-md-4">
<a id="videos" class="fancybox fancybox.iframe be-relative" href="http://www.youtube.com/embed/><span class="be-absolute"></span></a>
</div>
@endforeach
</div>
但是,这给了我:
[1, 2, 3]
[3, 4, 5]
...在第二幻灯片中我有
[6, 7, 8]
[9, 10, 11]
[12, 13, 14]
...但是这个12、13、14应该进入第三幻灯片。
您需要用6
将它们切碎@foreach( $videos->chunk(6) as $chunk)
<div class="row">
@foreach( $chunk as $video )
<div class="col-md-4">
<a id="videos" class="fancybox fancybox.iframe be-relative" href="http://www.youtube.com/embed/><span class="be-absolute"></span></a>
</div>
@endforeach
</div>
@endforeach
您发布的结果使我有些困惑,因为它们似乎不符合您已发布的代码(" 3"是第一个中的最后一个元素,也是第一个元素第二行)。您可能会混合一些东西?
基于您的代码,如果$key
确实是连续的索引(1、2、3、4,...),则应该像这样:
First slide:
[1, 2, 3]
[4, 5, 6]
Second slide:
[ 7, 8, 9]
[10, 11, 12]
[13]
Third slide:
[14, 15, 16]
[17, 18, 19]
[20]
...
基本问题是,您在每个第七元素之前添加分隔符,但实际上希望每6个元素在每6个元素后添加。听起来令人困惑,这完全是,但是请考虑一下,这将是有道理的。; - )
这将是您需要更改的第一件事,但我也建议使用使用iteration
-Loop变量,该变量由Blade Loops提供,并包含当前迭代的数量,而不是$key
。
所有这些都应该有效:
<div class="row">
@foreach($videos as $video)
<div class="col-md-4">
<a id="videos" class="fancybox fancybox.iframe be-relative" href="http://www.youtube.com/embed/><span class="be-absolute"></span></a>
</div>
@if ((($loop->iteration % 6) == 0) && (!$loop->last))
</div><div class="row">
@endif
@endforeach
</div>
希望有帮助!如果没有随意添加消息!