with
Используйте тег with для создания нового внутреннего контекста. Переменные, заданные в этом контексте, не видны за его пределами:
{% with %}
{% set foo = 42 %}
{{ foo }}{# foo is 42 here #}
{% endwith %}
foo is not visible here any longer
Вместо определения переменных в начале области видимости, вы можете передать хеш переменных, которые вы хотите определить, в теге with; предыдущий пример эквивалентен следующему:
{% 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 %}
По умолчанию внутренний контекст имеет доступ к внешнему контексту; вы можете отключить это поведение, добавив ключевое слово only;
{% set bar = 'bar' %}
{% with { foo: 42 } only %}
{# only foo is defined #}
{# bar is not defined #}
{% endwith %}
© 2009–2018 by the Twig Team
Licensed under the three clause BSD license.
The Twig logo is © 2010–2020 Symfony
https://twig.symfony.com/doc/3.x/tags/with.html