我有一个Twig for循环使用批处理过滤器来包装容器div中的每2个元素。我想在这个for循环中为每个第3和第4个div添加一个类名。但是,在使用loop.index
过滤器时,您似乎无法使用batch
。那是对的吗?在使用批处理过滤器时如何访问索引?
我试过的是:
{% for batch in blog.articles | limit(6) | batch(2) %}
<div class="blog-art-wrap row-eq-height">
{% for article in batch %}
<div class="article {% if loop.index == 3 or loop.index == 4 %}some-class{% endif %}">...... </div>
{% endfor %}
</div>
{% endfor %}
我也尝试过loop.index3
等......但它似乎忽略了这一点。
或者这是因为批次是2?所以实际上没有索引3和4 ??如果是这样,你如何访问每一个第二批呢?
答案 0 :(得分:4)
您可以使用parent
loop variable来引用父上下文。例如:
{% for batch in blog.articles | batch(2) %}
<div class="blog-art-wrap row-eq-height">
{% for article in batch %}
<div class="article {% if loop.parent.loop.index == 3 or loop.parent.loop.index == 4 %}some-class{% endif %}">...... </div>
{% endfor %}
</div>
{% endfor %}
希望这个帮助
答案 1 :(得分:1)
试试这个:
{% set className = '' %}
{% if loop.index is divisibleby(3) or loop.index is divisibleby(4) %}
{% set className = 'some-class' %}
{% endif %}
<div class="article {{ className }}">...... </div>