每两个树枝
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 %}
有没有办法在 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 %}