我正在尝试对通过Laravel Blade中的@each
指令包含的项目循环进行迭代。
当我使用常规的@foreach
循环时,这非常好,我可以迭代奇数/偶数记录,但当使用@each
时,这个概念似乎不起作用。
我是做错了什么,还是@each
指令的预期行为?
我的代码如下:
splices.blade.php
<section>
@each('_partials/components.split', $page->splits, 'split')
</section>
split.blade.php
<article
@if ($loop->odd)
style="background-image: url('placehold.it/1920x400');"
class="bg-cover bg-center"
@else
class="bg-white"
@endif
>
</article>
如有任何帮助,我们将不胜感激。
非常感谢
马特
Each不自动在刀片文件中包含$loop变量,而是传递$key
变量。
所以你可以写:
<article
@if ($key % 2 == 0)
style="background-image: url('placehold.it/1920x400');"
class="bg-cover bg-center"
@else
class="bg-white"
@endif
>
</article>
each指令没有像foreach那样的$loop
变量。
但是,它确实会将所提供数组中每个项的键发送到视图。因此,如果您没有设置自定义键,$key
变量应该包含一个从0
到数组长度的值。
只是通过查看源代码发现了这一点。