Reputation: 12512
I have a loop withing a .twig file that outputs elements.
I need to increment a value withing each element. I know how to do it in PHP, but an not clear how to do it withing a twig document. I can't really do it in controller. Any suggestions?
{% set myVal = 50 %}
{% for item in items%}
{{ myVal = myVal + 10 }}
{% endfor %}
Upvotes: 60
Views: 121944
Reputation: 2136
Here is the better way -
{% for item in items %}
{% set counter = ( counter | default(0) ) + 1 %}
<p>{{ counter ~ ' ). ' ~ item.title }}</p>
{% endfor %}
See how the counter is being increased by 1.
Upvotes: 27
Reputation: 4835
Use this:
{% set myVal = 50 %}
{% for item in items %}
{% set myVal = myVal + 10 %}
{% endfor %}
For declaring, setting values, setting blocks/forms, etc. you must use {% %}
. For output, there is {{ }}
Upvotes: 130