Twig模板是简单的文本文件,它包含标记(tags)、变量(variables)和表达式(expressions),前者用于控制模板的逻辑、后两者在模板中输出对应值的结果。 Twig有两类分隔符:{% ... %}和{{ ... }}。前者用于执行一个表达式,如:{% foo=bar %},后者是输出表达式的值。 变量 应用程序传递变量给模板,用于控制模板的输出。变量同样可以拥有可访问的属性或元素(即:PHP对象的方法或属性,或PHP数组项)。可以使用点或方括号访问它们: {{ foo.bar }} {{ foo['bar'] }} 如果属性包含特殊字符(如变量使用 - 分开)使用正常的方法则无法赋值,使用attribute函数为该属性赋值: {# 相当于foo.data-foo #} {{ attribute(foo, 'data-foo') }} 全局变量 下列变量在模板中总是可用: _self:引用当前模板
_context:引用当前上下文
_charset:引用当前字符集 变量赋值 在代码块内部使用set标签为变量赋值: {% set foo = 'foo' %} {% set foo = [1, 2] %} {% set foo = {'foo': 'bar'} %} 过滤器 变量可以使用过滤器进行修改。过滤器通过管道符(|)与变量分离,并且在圆括号中可以有任意参数。多个过滤器可以链接,任一过滤器的输出均被应用到下一个。 下例从变量name中移除所有HTML标记并让每个单词的首字母大写。 {{ name|striptags|title }} 下例展示了如何使用过滤器参数,变量list中的每一项被逗号连接在一起: {{ list|join(',') }} 下例展示了如何为一段代码块应用过滤器,代码块中的字符串会变为大写: {% filter upper %} This text becomes uppercase {% endfilter %} 函数 函数用于生成内容。例如,range函数返回一个整数的算术级列表: {% for i in range(0, 3) %} {{ i }}, {% endfor %}
|