内容简介: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的打赏,我们会更加努力! 如果您想成为作者,请点我
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Web Data Mining
Bing Liu / Springer / 2011-6-26 / CAD 61.50
Web mining aims to discover useful information and knowledge from Web hyperlinks, page contents, and usage data. Although Web mining uses many conventional data mining techniques, it is not purely an ......一起来看看 《Web Data Mining》 这本书的介绍吧!