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

Пробую делать полосатую зебру:

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

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

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

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

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

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

{% set counter = counter + 1 %}

person Codium    schedule 24.01.2012    source источник
comment
Это для стола? <table class="table tabled-striped">   -  person zkent    schedule 21.07.2016


Ответы (2)


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

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

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

person Maerlyn    schedule 25.01.2012

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

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

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

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

person Dan Green-Leipciger    schedule 08.07.2013