@each指令内部的循环交互



我正在尝试对通过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到数组长度的值。

只是通过查看源代码发现了这一点。

最新更新