42 lines
1.1 KiB
ReStructuredText
42 lines
1.1 KiB
ReStructuredText
``with``
|
|
========
|
|
|
|
Use the ``with`` tag to create a new inner scope. Variables set within this
|
|
scope are not visible outside of the scope:
|
|
|
|
.. code-block:: twig
|
|
|
|
{% 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:
|
|
|
|
.. code-block:: twig
|
|
|
|
{% 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:
|
|
|
|
.. code-block:: twig
|
|
|
|
{% set bar = 'bar' %}
|
|
{% with { foo: 42 } only %}
|
|
{# only foo is defined #}
|
|
{# bar is not defined #}
|
|
{% endwith %}
|