内容简介:Twig是一种模板引擎:1. 主要的语法有两种{% … %}和{{ … }}第一种是用来控制的,比如for循环;第二种是用来输出变量和表达式的。
Twig是一种模板引擎:
1. 主要的语法有两种{% … %}和{{ … }}
第一种是用来控制的,比如for循环;第二种是用来输出变量和表达式的。
2. 输出变量。如输出$hello: {{hello}}
3. 如传递给模板的是对象或者数组,可使用点 . 来输出对象的属性或者方法,或者数组的成员,或者可以使用下标的方式。
{{ data.info }} {{ data['info'] }}
这个需要结合后端代码理解,比如你用Twig页面走了一个后端接口,后端传了一个data数组过来,你就可以用上面的方法将data里面的info输出出来。
4. data.info在模板中会进行以下的操作
如果data是个数组,就尝试返回info成员,如果不存在的话,往下继续;
如果data是个对象,会尝试返回info属性,如果不存在的话,往下继续;
会尝试运行info方法,如果不存在的话,往下继续;
而第二种不一样:
for[‘bar’] —— for必须是个数组,尝试返回bar成员,如果不就返回null
5. 变量赋值 可以用set标签
{% set foo = 'foo' %} {% set foo = [1, 2] %} {% set foo = {'foo': 'bar'} %}
6. 过滤器 filter
变量可以被过滤器修饰;过滤器和变量用(|)分割开;过滤器也是可以有参数的;过滤器也可以被多重使用。
一开始不知道这个,被坑了一把。这次可要牢记。
7. 函数 function
Twig有一些内置函数,例如返回0到3的数组就可以用到range函数:
{% for i in range(0, 3) %} {{ i }}, {% endfor %}
8. 流程控制 —— 支持 for循环 和 if/else if/eise 结构
例:
<h1>Members</h1> <ul> {% for user in users %} <li>{{ user.username | e }}</li> {% endfor %} </ul>
而这里的e就是过滤器的一种
9. 注释 —— 使用{{#…#}},注释掉包围的内容,可以注释单行或多行,这个比较简单,有一点基础都应该懂的。
10. 载入其它模板
(1).include标签,会返回经过渲染的内容到当前的模板里
例如:{% include ‘sidebar.html’ %} ,意思就是引用,这个我们的框架里面有很多。用法其实很简单。
(2).当前模板的变量也会传递到被include的模板里,在那里面可以直接访问你这个模板的变量。例如:
{% for box in boxes %} {% include "render_box.html" %} {% endfor %}
在render_box.html中是可以访问box变量的;
11. 模板继承
(1).TWIG中最有用到功能就是模板继承,他允许你建立一个“骨骼模板”,然后你用不同到block来覆盖父模板中任意到部分。而且使用起来非常到简单。
(2).我们先定义一个基本页list.html.twig他包含许多block块,这些都可以被子模板覆盖。
conten里面也有许多block,比如,before,filtrate等:
比如这个,在子模块里就可以用同样的方法复写它:
(3).下面定义了block块,是block body
这个也不是很难理解,就相当于继承,和重写父类的方法。
12. 子模板的定义
子模板:
注意:{% extends “base.html” %}必须是第一个标签。
其中block footer就没有定义,所以显示父模板中设置的默认值。
需要增加一个block的内容,而不是全覆盖,你可以使用parent函数
extends标签只能有一个,所以你只能有一个父模板;但有种变通到方法来达到重用多个模板到目的。
13. macros 宏
宏有点类似于函数,常用于输出一些html标签。
这里有个简单示例,我们在control.loader.twig定义了一个输出 a标签的宏。我们经常使用的控件都是这么做的。
这样我们就可以在需要的地方调用这些控件了,首先我们先引入
然后调用:
宏参数是没有默认值的,但我们可以通过default过滤器来实现。
暂时就总结到这里,以后遇到了再进行添加,以此共勉吧!加油。
转载时请注明出处及相应链接,本文永久地址:https://blog.yayuanzi.com/25295.html
微信打赏
支付宝打赏
感谢您对作者Miya的打赏,我们会更加努力! 如果您想成为作者,请点我
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
大型网站技术架构
李智慧 / 电子工业出版社 / 2013-9-1 / 59.00元
《大型网站技术架构:核心原理与案例分析》通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、架构设计、性能优化、Web 安全、系统发布、运维监控等在内的大型网站开发全景视图。 《大型网站技术架构:核心原理与案例分析》不仅适用于指导网站工程师、架构师进行网站技术架构设计,也可用于指导产品经......一起来看看 《大型网站技术架构》 这本书的介绍吧!