每两个树枝

For every two in twig

有没有办法在 twig 中为每两个循环设置一个 for?我知道解释我的意思的最好方法是向您展示我正在寻找的结果。

<div class="row"></div>
<div class="item"></div>
<div class="item"></div>
<div class="row"></div>
<div class="item"></div>
<div class="item"></div>
<div class="row"></div>

有没有什么方法可以自动将两个项目排成一行 div,并为尽可能多的可用项目重复该操作?

您的代码片段与您在其下方所写的不同,但我认为这就是您想要的:

{% set columns = 2 %}
<div class="row">
    {% for item in items %}
        <div class="item">{{ item }}</div>
        {% if loop.index % columns %}
            </div>
            <div class="row">
        {% endif %}
    {% endfor %}
</div>

我最终结合了 Markus Kottländer 和 DarkBee 的建议:

<div class="row">
    {% for item in items %}
        <div class="item">{{ item }}</div>
        {% if loop.index is even %}
            </div>
            <div class="row">
        {% endif %}
    {% endfor %}
</div>

更好的解决方案是使用 Twig 中的 batch 函数,它可以完全满足您的需求。

这是您的示例的代码:

{% for row in items|batch(2) %}
    <div class="row">
        {% for item in row %}
            <div class="item">{{ item }}</div>
        {% endfor %}
    </div>
{% endfor %}