支付宝扫一扫付款
微信扫一扫付款
(微信为保护隐私,不显示你的昵称)
Twig是Symfony默认的模板引擎。它自己的包含了大量内置函数、变量调节器,标签和测试等(更多内容请参考Twig参考)。
Symfony在此基础上添加了自定义扩展,把一些组件整合到Twig模板中。以下小节就分别解释了这些自定义的function(函数),filters(调节器),tags(标签)和tests(测试),当使用Symfony完整版时它们都是可以使用的。
也许你在使用的bundle中的一些标签没有列在这里。
1 | {{ render(uri, options = []) }} |
uri
string
| ControllerReference
options
(可选)array
默认值: []
为给定的控制器或URI渲染(页面的)片断 (使用 controller 函数)。更多信息,请参考 如何在模板中嵌入控制器 。
渲染策略可以在 strategy
键选项中指定。
1 | {{ render_esi(uri, options = []) }} |
uri
string
| ControllerReference
options
(可选)array
默认值: []
在可能的情况下生成一个ESI标签,或者回滚到 render 函数的行为。 更多信息,参考 如何在模板中嵌入控制器。
render_esi()
是 render
快捷方法的一个例子。它自动地基于函数名称所给定的(策略信息)来设置策略,比如 render_hinclude()
将使用 hinclude.js 策略。这种方式适用于所有 render_*()
函数。
1 | {{ controller(controller, attributes = [], query = []) }} |
controller
string
attributes
(可选)array
默认值: []
query
(可选)array
默认值: []
返回 ControllerReference
实例,用于诸如 render() 和 render_esi() 等函数。
1 | {{ asset(path, packageName = null) }} |
path
string
packageName
(可选)string
| null
默认值: null
返回 path
的public路径,该路径负责打点“设置给package的基本路径”和“URL路径”。更多信息请参考 连接到assets。对于asset versioning(资源版本),参考 version。
1 | {{ assets_version(packageName = null) }} |
packageName
(可选)string
| null
默认值: null
返回package的当前版本,更多信息请参考 链接到Assets.
1 | {{ form(view, variables = []) }} |
view
FormView
variables
(可选)array
默认值: []
返回一个完整表单的HTML标签,更多信息请参考 Twig表单参考。
1 | {{ form_start(view, variables = []) }} |
view
FormView
variables
(可选)array
默认值: []
返回一个表单的HTML开始标签,更多信息请参考 Twig表单参考。
1 | {{ form_end(view, variables = []) }} |
view
FormView
variables
(可选)array
默认值: []
返回一个表单的HTML结束标签,更多信息请参考 Twig表单参考。
1 | {{ form_widget(view, variables = []) }} |
view
FormView
variables
(可选)array
默认值: []
返回一个完整表单,或返回某个字段的特定HTML小部件(widget),更多信息请参考 Twig表单参考。
1 | {{ form_errors(view) }} |
view
FormView
渲染(译注:由程序向模板输出的过程,在Symfony中常被称作渲染)给定字段的任何错误信息,或全局错误,更多信息请参考 Twig表单参考。
1 | {{ form_label(view, label = null, variables = []) }} |
view
FormView
label
(可选)string
默认值: null
variables
(可选)array
默认值: []
渲染给定字段的label部分,更多信息请参考 Twig表单参考。
1 | {{ form_row(view, variables = []) }} |
view
FormView
variables
(可选)array
默认值: []
渲染给定字段的row部分(包括该字段的label,errors以及widget),更多信息请参考 Twig表单参考。
1 | {{ form_rest(view, variables = []) }} |
view
FormView
variables
(可选)array
默认值: []
渲染尚未被渲染的全部字段,更多信息请参考 Twig表单参考。
1 | {{ csrf_token(intention) }} |
intention
string
渲染一个CSRF token。当你“没有创建表单”时,若需要CSRF防护,可以使用本函数。
role
string
object
(可选)object
field
(可选)string
返回 true
,如果当前用户拥有所需的role的话。可选的,可以传入一个Voter需要用到的对象。更多信息,可以在 模版中的访问控制。
对于一个特定字段,你也可以把它传入,以使用ACE。关于此部分的更多内容,参考 访问控制入口项的范围。
1 | {{ logout_path(key = null) }} |
key
(可选)string
为给定的firewall(防火墙)生成一个相对的logout URL(退出链接)。如果没有提供key,则URL的生成是针对“用户登陆进来时所用到的”防火墙。
1 | {{ logout_url(key = null) }} |
key
(可选)string
等同于 logout_path 函数,但是它只生成绝对URL而非相对。
1 | {{ path(name, parameters = [], relative = false) }} |
name
string
parameters
(可选)array
默认值: []
relative
(可选)boolean
默认值: false
为给定的路由返回相对URL (没有scheme和host)。如果 relative
开启,它将创建一个相对于当前路径的path。更多信息请参考 链接到页面。
1 | {{ url(name, parameters = [], schemeRelative = false) }} |
name
string
parameters
(可选)array
默认值: []
schemeRelative
(可选)boolean
默认值: false
为给定的路由返回绝对对URL (有scheme和host) 。如果 schemeRelative
开启,它将创建一个scheme-relative的URL(相对于scheme)。更多信息请参考 链接到页面。
1 | {{ absolute_url(path) }} |
path
string
从传入的相对路径中,返回绝对URL。例如,假设你访问的是这个程序页面:http://example.com/products/hover-board
。
1 2 3 4 5 | {{ absolute_url('/human.txt') }}
{# http://example.com/human.txt #}
{{ absolute_url('products_icon.png') }}
{# http://example.com/products/products_icon.png #} |
1 | {{ relative_path(path) }} |
path
string
从传入的绝对路径中,返回相对URL。例如,假设你访问的是这个程序页面:http://example.com/products/hover-board
。
1 2 3 4 5 | {{ relative_path('http://example.com/human.txt') }}
{# ../human.txt #}
{{ relative_path('http://example.com/products/products_icon.png') }}
{# products_icon.png #} |
在Twig中创建 Expression
实例。参考 "模板中的表达式"。
1 | {{ text|humanize }} |
text
string
让一个技术向的名称变成人类可读 (如,把下划线改成空格,或把camelCase驼峰文本,比如 helloWorld
转换成 hello world
,其后对字符串大写)。
message
string
arguments
(可选)array
默认值: []
domain
(可选)string
默认值: null
locale
(可选)string
默认值: null
把文本翻译成当前语种信息。更多信息请参考 模板中的翻译。
1 | {{ message|transchoice(count, arguments = [], domain = null, locale = null) }} |
message
string
count
integer
arguments
(可选)array
默认值: []
domain
(可选)string
默认值: null
locale
(可选)string
默认值: null
在对文本进行翻译时添加多元化(pluralization)的支持。更多信息请参考 模板中的翻译。
1 | {{ input|yaml_encode(inline = 0, dumpObjects = false) }} |
input
mixed
inline
(可选)integer
默认值: 0
dumpObjects
(可选)boolean
默认值: false
把输入的内容转换成YAML语法,参考 写入YAML文件 以了解更多。
1 | {{ value|yaml_dump(inline = 0, dumpObjects = false) }} |
value
mixed
inline
(可选)integer
默认值: 0
dumpObjects
(可选)boolean
默认值: false
和 yaml_encode()同样的事,但却在输出内容中包括了类型(type)。
1 | {{ class|abbr_class }} |
class
string
生成一个 <abbr>
元素,带有一个PHP类的短名 (若用户把鼠标放在该元素上,会显示一个FQCN的tooltip提示框)。
1 | {{ method|abbr_method }} |
method
string
生成一个 <abbr>
元素,使用了 FQCN::method()
语法。如果 method
是 Closure
的话, Closure
将被使用。如果 method
并没有一个类名的话,它会显示为一个函数 (method()
)。
1 | {{ args|format_args }} |
args
array
生成一个带有参数及其类型的字符串 (在 <em>
元素中)。
1 | {{ args|format_args_as_text }} |
args
array
等同于 format_args 调节器,但不使用HTML标签。
1 | {{ file|file_excerpt(line = null) }} |
file
string
line
(可选)integer
围绕给定的 line
生成一个七行的摘要。
1 | {{ file|format_file(line, text = null) }} |
file
string
line
integer
text
(可选)string
默认值: null
在 <a>
元素中生成一个文件路径。如果路径位于kernel root directory(kernel根目录),kernel root directory路径会被 kernel.root_dir
替代 (在鼠标hover状态下显示完整路径的提示框)。
1 | {{ text|format_file_from_text }} |
text
string
使用 format_file 来改进默认的PHP错误信息输出。
1 | {{ file|file_link(line = null) }} |
对给定的文件生成一个链接(行号是可选的),使用的是一个预配置(preconfigured)scheme。
1 | {% form_theme form resources %} |
form
FormView
resources
array
| string
设置 resource 来覆写“给定的表单view实例” 之表单主题(form theme)。你可以使用 _self
作为 resources,即可把它设置为当前的resource。 更多内容请参考 如何自定义表单渲染。
vars
(可选)array
默认值: []
domain
(可选)string
默认值: string
locale
(可选)string
默认值: string
对内容的翻译进行渲染。更多内容请参考 Twig模板。
1 | {% transchoice count with vars from domain into locale %}{% endtranschoice %} |
count
integer
vars
(可选)array
默认值: []
domain
(可选)string
默认值: null
locale
(可选)string
默认值: null
对内容的翻译进行“支持多元化”的渲染。更多内容请参考 Twig模板。
1 | {% trans_default_domain domain %} |
domain
string
对当前模板中的默认domain(翻译域)进行设置。
1 | {% stopwatch 'name' %}...{% endstopwatch %} |
对标签内的代码的运行进行“计时”,并把相关信息置入WebProfilerBundle的时间线中。
1 | {% if choice is selectedchoice(selectedValue) %} |
choice
ChoiceView
selectedValue
string
检查 selectedValue
值是否被提交过来的choice字段所“选中(checked)”。使用它进行测试是最为高效的方式。
app
可以随处使用,可以访问到大量常用的对象连同其值。它是 GlobalVariables
的实例。
app.user
app.request
app.session
app.environment
app.debug
Symfony标准版在Symfony核心框架中添加了一些bundles。这些bundles,都有其他的Twig扩展:
本文,包括例程代码在内,采用的是 Creative Commons BY-SA 3.0 创作共用授权。