Warning Twig version 1.x is no longer maintained.
with
1.28
The with
tag was added in Twig 1.28.
Use the with
tag to create a new inner scope. Variables set within this
scope are not visible outside of the scope:
1 2 3 4 5
{% with %}
{% set foo = 42 %}
{{ foo }} foo is 42 here
{% endwith %}
foo is not visible here any longer
Instead of defining variables at the beginning of the scope, you can pass a
hash of variables you want to define in the with
tag; the previous example
is equivalent to the following one:
1 2 3 4 5 6 7 8 9 10
{% with { foo: 42 } %}
{{ foo }} foo is 42 here
{% endwith %}
foo is not visible here any longer
{# it works with any expression that resolves to a hash #}
{% set vars = { foo: 42 } %}
{% with vars %}
...
{% endwith %}
By default, the inner scope has access to the outer scope context; you can
disable this behavior by appending the only
keyword:
1 2 3 4 5
{% set bar = 'bar' %}
{% with { foo: 42 } only %}
{# only foo is defined #}
{# bar is not defined #}
{% endwith %}