Twig PHP: увеличение и вычитание значения в Foreach

Я работаю над проектом, который повторяется 100 раз с повторяющимися данными. Каждое восьмое сообщение я вставляю рекламный блок, потому что я использую значение индекса для нумерации каждого выходного блока, мне нужно вычесть из переменной, потому что рекламный блок не нумеруется. Итак, проблема у меня сейчас заключается в следующем.

Block #1

Block #2

Block #3

Block #4

Block #5

Block #6

Block #7

Advertisement Block

Block #9

Поскольку он считает рекламный блок как одну итерацию индекса, то следующий за ним блок, который будет иметь число, теперь равен 9, когда он должен быть 8. Есть ли способ увеличить переменную и затем вычесть из нее значение 1 каждый раз, когда показывает рекламный блок?

В стандартном PHP я мог бы сделать это легко, но с Twig я попробовал несколько вещей и не знаю, что мне делать.

1 ответ

Решение

Если я правильно понимаю, вы можете сделать это:

{% для foo в баре%}
  {% if (loop.index % 8 == 0 и loop.index > 0) %}
    {# Ваша реклама здесь #}
  {% endif%}
  {# Ваш стандартный блок здесь #}

Это block #{{ loop.index + 1 + loop.index // 8 }}{% endfor%}

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