Spec-Zone.ru › Twig 1

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 обладают областью видимости; поэтому переменная, объявленная внутри цикла %%%CODE_BLOCK_11%%, недоступна за пределами самого цикла:

{% 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 | spaceless »

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

Spec-Zone.ru

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