2012-06-30 3 views
1

Мне нужно показать значение в верхней части страницы, которое необходимо обновить после того, как я запустил некоторые петли Twig в середине страницы.Twig: обновить переменную, расположенную ранее в коде

Вот пример:

<div>Total Amount: {{ totalAmount }}</div> 
{% for product in products %} 
    {% set totalAmount = totalAmount + product.amount %} 
{% endfor %} 

Я мог бы вычислить значение в контроллере Symfony, но есть определенные причины, почему я предпочел бы сделать это в шаблоне Twig.

Возможно ли это с помощью Twig? Я уверен, что код Twig выполняется последовательно, и мне, возможно, придется найти другое решение. Но я хотел бы посмотреть, есть ли у кого-нибудь предложения.

Спасибо,

JB

+0

Обычно вы делаете расчеты, как это не в шаблоне (View), но вашей модели. Вы хотите оставить часть программирования от шаблона так, чтобы даже дизайнеры могли изменять часть View. – fdomig

+0

Согласовано. Обычно я хотел бы, чтобы они были разбиты на разделы, но у этого есть конкретная реализация, таким образом, поиск, чтобы проверить, можно ли его решить через шаблон. – jbsound

ответ

3

Использование блоков.

В вашей основной шаблон (макет):

<div>Total Amount: {% block totalAmount %}{% endblock %}</div> 

В шаблоне ребенка:

{% for product in products %} 
    {% set totalAmount = totalAmount + product.amount %} 
{% endfor %} 

{% block totalAmount %}{{ totalAmount }}{% endblock %} 
+0

Я просто добавлю, что шаблоны не подходят для вычислений. –

Смежные вопросы