У вас есть два варианта решения
- Поместите тег
if
внутри l oop
{% set i = 0 %}
{% for item in items %}
{% if item.foo == 'foo' %}
<span class="{% if i % 2 %}special-class{% endif %}">
{{ item.value }}
</span>
{% set i = i + 1 %}
{% endif %}
{% else %}
Nothing found
{% endfor %}
С этим решением Вы не можете «полагаться» на внутреннюю переменную loop
, поскольку счетчик продолжает увеличиваться независимо от того, было ли выполнено условие
Использовать
filter
- фильтр
{% for item in items | filter(item => item.foo == 'foo') %}
<span class="{% if loop.index % 2 %}special-class{% endif %}">
{{ item.value }}
</span>
{% else %}
Nothing found
{% endfor %}
обновленная демоверсия