twig模板的简单语法示例

2016-05-10  本文已影响4997人  Fairyin

TWIG 模板的主要特征。

1. spaceless

作用:消除页面中标签与标签之间的空格。

{% spaceless %}
<a rehf="bigood.com" target="_blank">Bigood.com</a>
<a rehf="bigood.com" target="_blank">Bigood.com</a>
{% endspaceless %}

2. 输出一个变量

{{ user.name }}
{{ user['name'] }}

3. if (判断一个变量是否存在)

{% if user is defined %}
{{ user.name }}
{% else %}
'没找到用户~'
{% endif %}

4. 条件语句

or 和 and

{% if a == '1' and b == '2' %}'true'{% endif %}
{% if a == '1' or b == '2' %}'true'{% endif %}

判断是否定义

{% if user is not defined %}
    'user 没有定义'
{% else %}
{{ user.anme }}
{% endif %}

判断是否为 null

{% if var is null %}
    {# do something #}
{% endif %}

判断是否为 false

{% if var is sameas(false) %}
'false'
{% else %}
'true'
{% endif %}

5. 循环

按数组的 key 遍历

{% for key in users|keys %}
{{ key }}
{% endfor %}

按数组的key,value遍历

{% for index, user in users %}
    {{ index }}:{{ user.id }}
{% endfor %}

6. autoescape

将字符串安全地处理成合法的指定数据 (true 启用 | false 禁用)

{% set var = '<a rehf="bigood.com" target="_blank">Bigood.com</a>' %}
{% autoescape true %}
    {{ var }}         {# 将会以文本的形式输出 #}
    {{ var|raw }}     {# 将会以 html 标签的形式输出 #}
    {{ var|escape }}  {# 将会以文本的形式输出 #}
{% endautoescape %}

7. block

相当于占位符,当被另一个模板继承时,可以调用这个模块。定义时的内容在继承的模板中默认是不会出现的,可以使用 {{ parent() }} 来显示。块名称可以使用字母数字字符和下划线,不允许使用破折号(-)。

{% block header %}
{% endblock %}

8. extends

类似 php 的 extends,不支持多重继承,只支持一个扩展模板
{% include %}:包含模板
{% extends %}:扩展模板
{% embed %} xxx {% endembed %}:包含模板并扩展该模板的内容,相当于 include 和 extends 的结合体
{% macro %} xxx {% endmacro %}:定义宏以便多次调用,与定义 PHP 函数无异
{% from aaa import bbb as ccc %}:从指定模板导入宏并设置别名

{% extends 'base.twig' %}

总结: TWIG 的使用和 PHP 非常类似,多使用几次就可以很快速的解决一般的页面输入要求了。

上一篇 下一篇

猜你喜欢

热点阅读