Eu preciso mostrar um valor no topo de uma página, que precisa ser atualizado depois de executar alguns loops Twig no meio da página.
Aqui está um exemplo:
<div>Total Amount: {{ totalAmount }}</div>
{% for product in products %}
{% set totalAmount = totalAmount + product.amount %}
{% endfor %}
Eu poderia computar o valor no controlador do Symfony, mas há certas razões pelas quais eu preferiria fazer isso no modelo Twig.
O acima é possível com o Twig? Eu tenho certeza que o código Twig é executado sequencialmente e eu posso ter que encontrar uma solução diferente. Mas eu gostaria de ver se alguém tem alguma sugestão.
Obrigado,
JB
Respostas:
3 para resposta № 1Use blocos.
No seu modelo principal (layout):
<div>Total Amount: {% block totalAmount %}{% endblock %}</div>
No seu modelo filho:
{% for product in products %}
{% set totalAmount = totalAmount + product.amount %}
{% endfor %}
{% block totalAmount %}{{ totalAmount }}{% endblock %}