with

Usa la etiqueta with para crear un nuevo ámbito interno. Las variables establecidas dentro de este ámbito no son visibles fuera del mismo:

{% with %}
    {% set value = 42 %}
    {{ value }} {# value es 42 aquí #}
{% endwith %}
value no es visible aquí ya

En lugar de definir variables al principio del ámbito, puedes pasar un mapeo de variables que quieres definir en la etiqueta with; el ejemplo anterior es equivalente al siguiente:

{% with {value: 42} %}
    {{ value }} {# value es 42 aquí #}
{% endwith %}
value no es visible aquí ya

{# funciona con cualquier expresión que se resuelva en un mapeo #}
{% set vars = {value: 42} %}
{% with vars %}
    ...
{% endwith %}

Por defecto, el ámbito interno tiene acceso al contexto del ámbito externo; puedes deshabilitar este comportamiento agregando la palabra clave only:

{% set zero = 0 %}
{% with {value: 42} only %}
    {# solo value está definido #}
    {# zero no está definido #}
{% endwith %}