三种特殊语法:

{{ … }}   “说些什么”:输出一个变量值或者一个表达式的结果到模板。如:{{ item.username }}。 twig也包含filters,它可以在模板渲染之前改变输出内容。{{表达式 | filters}}。这里还需要注意的是,当表达式中传值的时候,使用『:』,例如:{{ path(‘board_reply’,{id:item.id}) }}
{% … %}    “做些什么”:控制模板逻辑的tag(标签),用于执行声明,如if、for循环语句等。
{# … #}    “进行注释”:它相当于php的语法。它用于注释单行和多行。注释的内容不作为页面输出。

block 占位

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

{% block ** %}
用来定义
{% endblock %}

extends 继承

不支持多重继承,只支持一个扩展模板

{% extends 'base.html.twig' %}

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

注意事项

如果在模板中使用{% extends %},它必须是模板中的第一个标签

如果你发现在多个模板中有重复的内容,这可能意味着你需要为该内容在父模板中定义一个{% block %}了。

某些情况下,更好的解决方案可能是把这些内容放到一个新模板中,然后在该模板中include它。例如(在哪使用在哪 include): {{ include(‘article/article_details.html.twig’, { ‘article’: article }) }}

如果你需要从父模板中获取一个block的内容,可以使用{{ parent() }}函数。如果你只是想在父级块上添加新内容,而不是完全覆盖它,这很有用。

记住 end

例如:{% if ** %}  和 {% endif %}   {% for %} 和 {% endfor %}

判断

变量是否定义(存在)

{% if item is defined %}
{% item.name %}
{% endif %}

变量是否为空

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

     {{ item.id }} 

{% else %}
<h1>还没有人留言或留言已经删除</h1>
{% endif %}

多条件使用:

{% for item in list %}
<li> {{ item.title }} </li>
{% endfor %}

按数组的 key,value 进行遍历,key=index,value=item

{% for index, item in list %}
{{ index }}:{{ item.id }}
{% endfor %}

按照数组的 key 进行遍历

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

Twig---基本使用的更多相关文章

  1. 为模版设计师而生的Twig(下)-Twig使用指南

    原文地址:http://my.oschina.net/veekit/blog/276800 12. 模板继承 Twig最强大的部分是模板继承.模板继承允许你建立一个基本的"骨架"模 ...

  2. 为模版设计师而生的Twig(上)-Twig使用指南

    原文地址:http://my.oschina.net/veekit/blog/268828 1. 概要 模板是一个简单的文本文件.它可以生成任何基于文本的格式(HTML.XML.CSV等).它不具有特 ...

  3. symfony2 twig模板引擎

    1.基本语法 Says something:{{    }} Does something:{%  %} Comment something:{#    #} {% extends "App ...

  4. opencart 引入 TWIG 模板引擎

     1.首先将 twig 包放入 system\library 目录. 2.在 system/startup.php 文件最后添加引入语句. require_once(DIR_SYSTEM . 'lib ...

  5. PHP模版引擎 – Twig

    在网站开发过程中模版引擎是必不可少的,PHP中用的最多的当属Smarty了.目前公司系统也是用的Smarty,如果要新增一个页面只需把网站的头.尾和左侧公共部分通过Smarty的include方式引入 ...

  6. twig一些常用的用法总结【原创】

    在使用Symphony项目时,需要一些常用的twig,经过自己做的几个项目,自己的总结如下: 一.twig-数据判断 有时候在使用后台传给前台数据时需要判断是否有这个值,(是否为空(”或null)或是 ...

  7. yii2 使用twig 模板引擎

    yii2 默认使用PHP 和html 混合的方式来写视图层,但我个人还是喜欢纯模板语言的方式.而且已经非常习惯使用twig的语法,最近想使用yii2进行开发,所以还是选择使用twig视图引擎. git ...

  8. Twig模版语言入门

    转自 :http://pengbotao.cn/twig-template-language.html Twig中有两种定界符{% ... %} 和 {{ ... }} , 前一种用来执行语句,比如f ...

  9. symfony中twig的模板过滤器

    过滤器 变量可以被过滤器修饰.过滤器和变量用(|)分割开.过滤器也是可以有参数的.过滤器也可以被多重使用. 通用过滤器 date过滤器 1.1版本新增时区支持,1.5版本增加了默认的日期格式.格式化时 ...

  10. symfony中twig的模板载入

    模板 载入模板 {% include ‘sidebar.html’ %} 当前模板的变量也会传递到 被include的模板里,在那里面可以直接访问你这个模板的变量. {% for comment in ...

随机推荐

  1. level1 - unit 1 - 句子结构

    preface 学习英语做为一种爱好,就是希望有一天能够和老外流畅沟通,目前来看,日常沟通还是没有问题的和我的外教. 知识日积月累,现在就把以前学习的(从初中到现在)知识总结下.每天一更,更到单元总结 ...

  2. 续:纠正:ubuntu【7.04】可以安装,而且完美的安装 ! for《Oracle-10.2.0.1,打补丁10.2.0.5:在 debian 版本4【不含4】以上,及 ubuntu 7.04【不含7.04】以上都可以安装!》

    n次的测试后,最终证明,如下做法,可以完美安装. 中间都不带任何一个错误的!!!完美! dhclient vi /etc/profile ll cd /etc/apt/ mv sources.list ...

  3. django时区设置(timezone)

    django时区设置(timezone): 默认: TIMEZONE:'America/Chicago'(以前的版本,现在的版本默认的都是UTC时间.) Chicago时间,为UTC/GMT -6 小 ...

  4. js中判断浏览器版本

    var ai = { ovb: { /** * 该对象用于判断系统,系统版本,浏览器,苹果设备等等功能.ovb是单词 Os Version Browser 的头字母缩写. */ _version_va ...

  5. alsa wav

    wav_parser.h文件: //File : wav_parser.h //Author : Loon <sepnic@gmail.com> #ifndef __WAV_PARSER_ ...

  6. ios学习之UIWebView网页视图

    转载于爱德凡的百度空间,地址:http://hi.baidu.com/aidfan/item/34a720866b33cbcdef083d37 UIWebView 使用详解 一.UIWebView加载 ...

  7. Java -- 异常的捕获及处理 -- Java的异常处理机制

    7.1.4 Java的异常处理机制 在整个Java的异常处理中,实际上也是按照面向对象的方式进行处理,处理的步骤如下: ⑴ : 一旦产生异常,则首先会产生一个异常类的实例化对象. ⑵ : 在try语句 ...

  8. selenium之 chromedriver与chrome版本映射表(更新至v2.31)

    转自:http://blog.csdn.net/huilan_same/article/details/51896672 chromedriver版本 支持的Chrome版本 v2.31 v58-60 ...

  9. Git的撤销与回滚

    1,commit 之前的撤销 未添加至暂存区的撤销(add 之前) git status git checkout . 已添加至暂存区的撤销(add 之后,有或者没有commit操作都可以执行) gi ...

  10. Stay hungry, Stay foolish 的原义

    乔布斯在斯坦福大学毕业演讲中说过,他最喜欢的一句话叫做"Stay hungry, Stay foolish". "Stewart和他的人出了好几期<地球产品目录&g ...