Увеличение объявленной целочисленной переменной

Я пытаюсь сделать зебру чередование:

{% set counter = 0 %}
{% for entity in entities %}
  <tr class="{{ cycle(['odd', 'even'], counter) }}">
    {% counter++ %}

но я получаю ошибку:

Неожиданное имя тега "counter" (ожидается закрывающий тег для тега "for", определенного около строки 11)

Может ли кто-нибудь дать мне решение?

[РЕДАКТИРОВАТЬ]

Мое плохое решение так просто:

{% set counter = counter + 1 %}

2 ответа

Решение

Есть более простой способ сделать то, что вы хотите:

{{ cycle(["even", "odd"], loop.index) }}

Смотрите документы для loop лакомства.

Если вы хотите иметь полный контроль над HTML, вы можете попробовать это:

{% if loop.index is divisibleby(2) %}
    ...
{% endif %}

Вы можете прочитать это здесь: http://twig.sensiolabs.org/doc/tests/divisibleby.html

Обратите внимание, что loop.index используется "как есть", оно не относится к переменной, а скорее к скрытому индексированию цикла for.

Другие вопросы по тегам