Twig模板引擎常用基础用法总结

Twig是一种PHP模板引擎,最近,由于比较频繁的使用Twig模板,于是想总结一下一些常用的基本用法,希望能给对Twig还不熟悉的朋友带来帮助。
首先贴一下Twig官方文档链接:Twig模板语法官方文档

一、 变量定义与使用

  1. 使用 set 定义变量,使用{{ }} 使用变量。

    {% set text= 'content' %}
    <p class="content">{{ text }}p>
    
  2. 使用 . 获取对象中的值。

    <p class="content">{{ item.title}}p>
    <p class="content">{{ item.content}}p>
    

二、Twig 中的 if 判断

  1. 如果为真

    {% set bool = true %}
    {% if imgs %}
    	<p>这里写内容p>
    {% endif %}
    
  2. 如果a和b为真

    {% set a = true %}
    {% set b = false %}
    {% if a and b %}
    	<p>这里写内容p>
    {% endif %}
    
  3. 如果a或b为真

    {% set a = true %}
    {% set b = false %}
    {% if a or b %}
    	<p>这里写内容p>
    {% endif %}
    
  4. 变量是否定义

    {% if name is defined %}
    	<p>这里写内容p>
    {% endif %}
    
  5. 变量是否存在

    {% if name is null %}
    	<p>这里写内容p>
    {% endif %}
    
  6. if…else

    {% if count == 0 %}
       <p>情况一p>
    {% elseif count > 99 %}
       <p>情况二p>
    {% else %}
       <p>情况三p>
    {% endif %}
    

三、 Twig数组的使用

  1. 定义数组 set:

    {% set suffix = ['jpg', 'png', 'jpeg', 'gif', 'webp'] %}
    
  2. 获取数组长度 array|length:

    {{ suffix|length }}
    
  3. 获取数组元素 array[下标]

    {{ array[0] }}
    
  4. Twig没有push方法,我们可以使用 merge 实现为数组push一个元素:

    {% set imgs = [] %}
    {% set suf= 'png' %}
    {% if suf in suffix %}
     	{% set imgs = imgs|merge([suf]) %}
    {% else %}
    
  5. 判断某元素是否在数组中:

    {% if suf in suffix %}
    	<p>这里写内容p>
    {% else %}
    
  6. 判断某元素不在数组中:

    {% if suf not in suffix %}
    	<p>这里写内容p>
    {% else %}
    
  7. 判断是否是空数组,如果不是空数组:

    {% if imgs %} 
    	<p>这里写内容p>
    {% endif %}
    

四、 Twig中的for循环

  1. for循环

    {% for item in list %}
        {% if item.id == 0 %}
            <div>我是特殊的div>
        {% endif %}
        <p title="{{ item.title}}">{{ item.title}}p>
    {% endfor %}
    
  2. 带键值的for循环

    {% for key,item in list %}
        <div>{{ key }}div>
        <p title="{{ item.title}}">{{ item.title}}p>
    {% endfor %}
    

五、其他

  1. html转义。
    当我们在后台使用富文本输入了内容,不想在前端显示html代码,而希望得到html效果,只需要按下面的方式书写即可。

    {% autoescape false %}
        <div>{{ post.content }}div>
    {% endautoescape %}
    
  2. Twig实现类似PHP json_encode功能。

    var object = {{  object|json_encode|raw }}
    

    其中,object是php数组对象,当我们需要将其转成js可用的对象,使用上述Twig语法即可。

  3. Twig中的数学运算符。
    Twig允许您在模板中进行数学运算;支持以下运算符:

    +:将两个数字加在一起(将操作数强制转换为数字)。{{ 1 + 1 }} 打印2
    -:从第一个数字中减去第二个数字。是 。{{ 3 - 2 }} 打印1
    /:除以两个数字。返回的值将是一个浮点数。是。{{ 1 / 2 } 打印 0.5
    %:计算整数除法的余数。是 。{{ 11 % 7 }} 打印4
    //:将两个数字相除并返回底整数结果。{{ 20 // 7 }} 打印2, {{ -20 // 7 }} 打印 -3
    *:将左操作数与右操作数相乘。{{ 2 * 2 }} 打印4
    **:将左操作数提高到右操作数的幂。{{ 2 ** 3 }} 打印8

  4. Twig中的逻辑运算符。

    您可以将多个表达式与以下运算符结合使用:

    and:如果左侧和右侧操作数均为true,则返回true。
    or:如果左侧或右侧操作数为true,则返回true。
    not:否定一条语句。
    (expr):对表达式进行分组。

  5. Twig中的比较运算符。
    下列比较运算符支持在任何表达式:==, !=,<,>,>=,和<=。

你可能感兴趣的:(其他)