包括
的包括
语句包含一个模板,并输出该文件的呈现内容:
1 2 3
{%包括“header.html”%}身体{%包括“footer.html”%}
请注意
从Twig 1.12开始,建议使用包括而不是函数,因为它提供了相同的功能,但有更多的灵活性:
- 的
包括
函数在语义上更“正确”(包括在当前范围内输出其呈现内容的模板;标签不应该显示任何东西); 的
包括
Function更“可组合”:12 3 4 5 6 7 8 9 10 11 12 13
{#在变量中存储呈现的模板{%集内容%}{%包括“template.html”%}{%endset%}{# vs #}{%集内容=包括(“template.html”)%}{#在渲染模板上应用过滤器#}{%应用上%}{%包括“template.html”%}{%endapply%}{# vs #}{{包括(“template.html”)|上}}
- 的
包括
函数没有对参数施加任何特定的顺序命名参数.
所包含的模板可以访问活动上下文的变量。
如果您正在使用文件系统加载器,则在它定义的路径中查找模板。
参数后传递其他变量,可以添加其他变量与
关键字:
1 2 3 4 5
{# template.html将可以访问当前上下文中的变量和提供的其他变量{%包括包含{'foo': 'bar'} %}的'template.html'{%集Vars = {'foo': 'bar'} %}{%包括包含vars %}的template.html
属性可以禁用对上下文的访问只有
关键字:
1 2
{#只有foo变量可以访问{%包括包含{'foo': 'bar'}的'template.html'
1 2
{#没有变量可访问#}{%包括只有'template.html' %}
模板名可以是任意有效的Twig表达式:
1 2
{%包括some_var %}{%包括ajax吗?'not_ajax.html' %}
如果表达式的值是a\树枝\模板
或者一个\树枝\ TemplateWrapper
实例,Twig将直接使用它:
1 2 3 4 5
//包含模板%}$模板=$嫩枝->负载(“some_template.twig”);$嫩枝->显示器(“template.twig”, (“模板”= >$模板]);
可以用标记包含忽略失踪
在这种情况下,如果要包含的模板不存在,Twig将忽略该语句。它必须放在模板名称之后。以下是一些有效的例子:
1 2 3
{%包括'sidebar.html'忽略缺少%}{%包括'sidebar.html'忽略缺失的{'foo': 'bar'} %}{%包括'sidebar.html'只忽略%}
您还可以提供一个模板列表,在包含之前检查这些模板是否存在。存在的第一个模板将包括:
1
{%包括[' page_details .html', 'page.html'] %}
如果忽略失踪
时,如果不存在模板,它将退回到不呈现任何内容,否则将抛出异常。