set
在代码块中,您还可以为变量赋值。赋值使用 set
标签,并且可以有多个目标。
以下是如何将 Fabien
值赋给 name
变量的方法
1
{% set name = 'Fabien' %}
在 set
调用之后,name
变量在模板中可用,就像任何其他变量一样
1 2
{# displays Fabien #}
{{ name }}
赋值可以是任何有效的 Twig 表达式
1 2 3
{% set numbers = [1, 2] %}
{% set user = {'name': 'Fabien'} %}
{% set name = 'Fabien' ~ ' ' ~ 'Potencier' %}
可以在一个块中分配多个变量
1 2 3 4 5 6
{% set first, last = 'Fabien', 'Potencier' %}
{# is equivalent to #}
{% set first = 'Fabien' %}
{% set last = 'Potencier' %}
set
标签也可以用于“捕获”文本块
1 2 3 4 5
{% set content %}
<div id="pagination">
...
</div>
{% endset %}
注意
如果您启用自动输出转义,Twig 将仅在捕获文本块时才认为内容是安全的。
注意
请注意,循环在 Twig 中是作用域限定的;因此,在 for
循环内声明的变量在循环外部不可访问
1 2 3 4 5
{% for item in items %}
{% set value = item %}
{% endfor %}
{# value is NOT available #}
如果您想访问该变量,只需在循环之前声明它
1 2 3 4 5 6
{% set value = "" %}
{% for item in items %}
{% set value = item %}
{% endfor %}
{# value is available #}