setDentro de los bloques de código también puedes asignar valores a variables. Las asignaciones usan la etiqueta set y pueden tener múltiples objetivos.
Aquí se muestra cómo puedes asignar el valor Fabien a la variable name:
{% set name = 'Fabien' %}
Después de la llamada set, la variable name está disponible en la plantilla como cualquier otra:
{# muestra Fabien #}
{{ name }}
El valor asignado puede ser cualquier expresión Twig válida:
{% set numbers = [1, 2] %}
{% set user = {'name': 'Fabien'} %}
{% set name = 'Fabien' ~ ' ' ~ 'Potencier' %}
Varias variables pueden asignarse en un bloque:
{% set first, last = 'Fabien', 'Potencier' %}
{# es equivalente a #}
{% set first = 'Fabien' %}
{% set last = 'Potencier' %}
La etiqueta set también se puede usar para "capturar" fragmentos de texto:
{% set content %}
<div id="pagination">
...
</div>
{% endset %}
Caution
Si habilitas el escape automático de salida, Twig solo considerará que el contenido es seguro cuando capture fragmentos de texto.
Note
Ten en cuenta que los bucles tienen ámbito en Twig; por lo tanto, una variable declarada dentro de un bucle for no es accesible fuera del bucle mismo:
{% for item in items %}
{% set value = item %}
{% endfor %}
{# value NO está disponible #}
Si quieres acceder a la variable, simplemente declárala antes del bucle:
{% set value = "" %}
{% for item in items %}
{% set value = item %}
{% endfor %}
{# value está disponible #}