Twig 是个 简单而强力的模板,因为在学习sf 所以看看她。
本文来源http://twig.sensiolabs.org/doc/tags/index.html
目前支持的tags包括
for if macro filter set extends block include import from use spaceless autoescape raw flush do
twig在html分为3种
{{...}} 直接输出其中的变量
{#...#} 注释标签
{%...%} 命令标签,就是我们要学习的这些
for标签
这个最简单,就是循环。
基于数组的循环
Members
- {{ user.username|e }}
{% for user in users %}
{% endfor %}
Members
- {{ user.username|e }}
{% for user in users %}
{% endfor %}
基于数字的循环,特别要注意,这里会输出0-10 也就是11个数字。
{% for i in 0..10 %}
* {{ i }}
{% endfor %}
{% for i in 0..10 %}
* {{ i }}
{% endfor %}
基于字母的循环
{% for letter in 'a'..'z' %}
* {{ letter }}
{% endfor %}
{% for letter in 'a'..'z' %}
* {{ letter }}
{% endfor %}
在循环体内部的变量
变量名 | 描述 |
---|---|
loop.index | 循环的次数(从1开始) |
loop.index0 | 循环的次数(从0开始) |
loop.revindex | 循环剩余次数(最小值为1) |
loop.revindex0 | 循环剩余次数(最小值为0) |
loop.first | 当第一次循环的时候返回true |
loop.last | 当最后一次循环的时候返回true |
loop.length | 循环的总数 |
loop.parent | 被循环的数组 |
loop.length, loop.revindex, loop.revindex0,loop.last 这几个值只有在被循环的是 php数组 或实现了Countable 接口的类,才有效。
添加一个条件
跟PHP不一样,在循环内部不支持break和continue语句,你只能通过过滤器去跳过一些循环,就像这样
- {{ user.username|e }}
{% for user in users if user.active %}
{% endfor %}
- {{ user.username|e }}
{% for user in users if user.active %}
{% endfor %}
else 分支
如果 users是个空数组就会输出no user found 。
- {{ user.username}}
- no user found
{% for user in users %}
{% else %}
{% endfor %}
- {{ user.username}}
- no user found
{% for user in users %}
{% else %}
{% endfor %}
按keys循环
Members
- {{ key }}
{% for key in users|keys %}
{% endfor %}
Members
- {{ key }}
{% for key in users|keys %}
{% endfor %}
按keys, values循环
Members
- {{ key }}: {{ user.username|e }}
{% for key, user in users %}
{% endfor %}
Members
- {{ key }}: {{ user.username|e }}
{% for key, user in users %}
{% endfor %}
if标签
这个不用多说,直接看例子{% if users %}
- {{ user.username|e }}
{% for user in users %}
{% endfor %}
{% endif %}
{% if kenny.sick %}
Kenny is sick.
{% elseif kenny.dead %}
You killed Kenny! You bastard!!!
{% else %}
Kenny looks okay --- so far
{% endif %}
{% if users %}
- {{ user.username|e }}
{% for user in users %}
{% endfor %}
{% endif %}
{% if kenny.sick %}
Kenny is sick.
{% elseif kenny.dead %}
You killed Kenny! You bastard!!!
{% else %}
Kenny looks okay --- so far
{% endif %}
macro标签
macro(宏标签)类似于其他语言中的函数,常用于填充html标签,以下是一个例子,用来渲染
{% macro input(name, value, type, size) %}
{% endmacro %}
{% macro input(name, value, type, size) %}
{% endmacro %}
macro与函数的不同之处在于:
1、参数的默认值是通过macro块内部的 default过滤器来定义的。
2、参数总是可选的。
另外,就跟php函数一样,macro内部是无法使用外部的变量的。但你可以传递一个特殊变量_context作为参数来获取整个内容。
macro可以被定义在任何的模板内,但在你使用之前需要使用 imported
{% import "forms.html" as forms %}
{% import "forms.html" as forms %}然后就可以这样使用了
{{ forms.input('username') }}
{{ forms.input('password', null, 'password') }}
{{ forms.input('username') }}
{{ forms.input('password', null, 'password') }}
如果你要在定义macro的模板里使用,就不需要imported 可以使用特殊变量_self
{{ _self.input('username') }}
{{ _self.input('username') }}
如果你要定义一个macro里 包含另一个macro,并且两个macro在同一个文件里,可以使用特殊变量_self
{% macro input(name, value, type, size) %}
{% endmacro %}
{% macro wrapped_input(name, value, type, size) %}
{{ _self.input(name, value, type, size) }}
{% endmacro %}
{% macro input(name, value, type, size) %}
{% endmacro %}
{% macro wrapped_input(name, value, type, size) %}
{{ _self.input(name, value, type, size) }}
{% endmacro %}
如果两个macro在不同的文件里,你需要使用import
{# forms.html #}
{% macro input(name, value, type, size) %}
{% endmacro %}
{# shortcuts.html #}
{% macro wrapped_input(name, value, type, size) %}
{% import "forms.html" as forms %}
{{ forms.input(name, value, type, size) }}
{% endmacro %}
{# forms.html #}
{% macro input(name, value, type, size) %}
{% endmacro %}
{# shortcuts.html #}
{% macro wrapped_input(name, value, type, size) %}
{% import "forms.html" as forms %}
{{ forms.input(name, value, type, size) }}
{% endmacro %}
filter标签
就是给整个区块使用过滤器
{% filter upper %}
This text becomes uppercase
{% endfilter %}
{% filter upper %}
This text becomes uppercase
{% endfilter %}
{% filter lower|escape %}
SOME TEXT
{% endfilter %}
摘自 jiaochangyun的专栏

技嘉的主板怎么设置键盘开机首先,要支持键盘开机,一定是PS2键盘!!设置步骤如下:第一步:开机按Del或者F2进入bios,到bios的Advanced(高级)模式普通主板默认进入主板的EZ(简易)模式,需要按F7切换到高级模式,ROG系列主板默认进入bios的高级模式(我们用简体中文来示范)第二步:选择到——【高级】——【高级电源管理(APM)】第三步:找到选项【由PS2键盘唤醒】第四步:这个选项默认是Disabled(关闭)的,下拉之后可以看到三种不同的设置选择,分别是按【空格键】开机、按组

1.处理器在选择电脑配置时,处理器是至关重要的组件之一。对于玩CS这样的游戏来说,处理器的性能直接影响游戏的流畅度和反应速度。推荐选择IntelCorei5或i7系列的处理器,因为它们具有强大的多核处理能力和高频率,可以轻松应对CS的高要求。2.显卡显卡是游戏性能的重要因素之一。对于射击游戏如CS而言,显卡的性能直接影响游戏画面的清晰度和流畅度。建议选择NVIDIAGeForceGTX系列或AMDRadeonRX系列的显卡,它们具备出色的图形处理能力和高帧率输出,能够提供更好的游戏体验3.内存电

在CakePHP中使用Twig是一种将模板和视图分离的方法,能够使代码更加模块化和可维护,本文将介绍如何在CakePHP中使用Twig。一、安装Twig首先在项目中安装Twig库,可以使用Composer来完成这个任务。在控制台中运行以下命令:composerrequire"twig/twig:^2.0"这个命令会在项目的vendor

主板上SPDIFOUT连接线序最近我遇到了一个问题,就是关于电线的接线顺序。我上网查了一下,有些资料说1、2、4对应的是out、+5V、接地;而另一些资料则说1、2、4对应的是out、接地、+5V。最好的办法是查看你的主板说明书,如果找不到说明书,你可以使用万用表进行测量。首先找到接地,然后就可以确定其他的接线顺序了。主板vdg怎么接线连接主板的VDG接线时,您需要将VGA连接线的一端插入显示器的VGA接口,另一端插入电脑的显卡VGA接口。请注意,不要将其插入主板的VGA接口。完成连接后,您可以

广联达软件是一家专注于建筑信息化领域的软件公司,其产品被广泛应用于建筑设计、施工、运营等各个环节。由于广联达软件功能复杂、数据量大,对电脑的配置要求较高。本文将从多个方面详细阐述广联达软件的电脑配置推荐,以帮助读者选择适合的电脑配置处理器广联达软件在进行建筑设计、模拟等操作时,需要进行大量的数据计算和处理,因此对处理器的要求较高。推荐选择多核心、高主频的处理器,如英特尔i7系列或AMDRyzen系列。这些处理器具有较强的计算能力和多线程处理能力,能够更好地满足广联达软件的需求。内存内存是影响计算

随着Web开发技术的不断发展,越来越多的开发者开始寻找更加灵活、高效的模板引擎来进行Web应用的开发。其中,Twig是一款十分优秀、流行的PHP模板引擎,它基于Symfony框架开发并支持无限扩展,非常适合用于构建复杂的Web应用程序。本篇文章将介绍如何在PHP中使用Twig模板引擎进行Web开发。一、Twig模板引擎简介Twig是由FabienPoten

PHP8.0中的模板库:TwigTwig是一款目前广泛用于PHPWeb应用程序中的模板库,具有可读性高、易于使用和可扩展性强等特点。Twig使用简单易懂的语法,可以帮助Web开发人员以清晰、有序的方式组织和输出HTML,XML,JSON等文本格式。本篇文章将为您介绍Twig的基本语法和特点以及它在PHP8.0中的使用。Twig的基本语法Twig采用类似于P

作为一名Java开发者,学习和使用Spring框架已经是一项必不可少的技能。而随着云计算和微服务的盛行,学习和使用SpringCloud成为了另一个必须要掌握的技能。SpringCloud是一个基于SpringBoot的用于快速构建分布式系统的开发工具集。它为开发者提供了一系列的组件,包括服务注册与发现、配置中心、负载均衡和断路器等,使得开发者在构建微


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

Dreamweaver Mac版
시각적 웹 개발 도구

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.
