Spec-Zone.ru › Twig 3

set

Внутри блоков кода вы также можете присваивать значения переменным. Присваивания используют тег set и могут иметь несколько целевых объектов.

Вот как вы можете присвоить значение bar переменной %%%CODE_BLOCK_2%%:

{% set foo = 'bar' %}

После вызова %%%CODE_BLOCK_4%%, переменная foo доступна в шаблоне, как и любые другие:

{# displays bar #}
{{ foo }}

Присвоенное значение может быть любым допустимым выражением Twig:

{% set foo = [1, 2] %}
{% set foo = {'foo': 'bar'} %}
{% set foo = 'foo' ~ 'bar' %}

Несколько переменных можно присвоить в одном блоке:

{% set foo, bar = 'foo', 'bar' %}

{# is equivalent to #}

{% set foo = 'foo' %}
{% set bar = 'bar' %}

Тег set также может использоваться для «захвата» фрагментов текста:

{% set foo %}
    <div id="pagination">
        ...
    </div>
{% endset %}

Внимание

Если вы включите автоматическое экранирование вывода, Twig будет считать содержимое безопасным только при захвате фрагментов текста.

Примечание

Обратите внимание, что циклы имеют область видимости в Twig; поэтому переменная, объявленная внутри цикла for, недоступна за пределами самого цикла:

{% for item in list %}
{% set foo = item %}
{% endfor %}

{# foo is NOT available #}

Если вам нужно получить доступ к переменной, просто объявите её перед циклом:

{% set foo = "" %}
{% for item in list %}
{% set foo = item %}
{% endfor %}

{# foo is available #}
« sandbox | use »

© 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/set.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API