我发现包含这个路径的模板工作正常
{% include 'AcmeDemoBundle:TemplateArchive:view.html.twig' with {'data': c.data} %}
Run Code Online (Sandbox Code Playgroud)
虽然这似乎是不允许的:
{% include 'AcmeDemoBundle:TemplateArchive:6:view.html.twig' with {'data': c.data} %}
Run Code Online (Sandbox Code Playgroud)
换句话说,我试图访问我已经整理到我的bundle/resources/views /文件夹中的子文件夹结构的模板.
如果我不允许比我的第一行中的常规单级包含更深入地钻取,是否有另一种/更好的方法来构造这些模板文件?
(文件夹名称'6'表示我想要包含的数据库中的模板ID,它需要是动态的,并且很好地排序在文件夹中......).
我已经尝试命名我的模板文件夹't6',但没有区别,"没有前导字母的数字"不是这里的问题...
Pat*_*and 58
关于什么
{% include 'AcmeDemoBundle:TemplateArchive:6/view.html.twig' with {'data': c.data} %}
Run Code Online (Sandbox Code Playgroud)
两者都有效:
AcmeDemoBundle:TemplateArchive:6/view.html.twig
AcmeDemoBundle:TemplateArchive/6:view.html.twig
Run Code Online (Sandbox Code Playgroud)
从Symfony 2.2开始,您还可以使用Namespaced路径:
{% include '@AcmeDemo/TemplateArchive/6/bar.html.twig' with {'data': c.data} %}
Run Code Online (Sandbox Code Playgroud)
您甚至可以定义自己的命名空间:
# app/config/config.yml
twig:
# ...
paths:
"%kernel.root_dir%/../src/Acme/DemoBundle/Resources/views/TemplateArchive": TemplateArchive
Run Code Online (Sandbox Code Playgroud)
然后使用它像:
{% include '@TemplateArchive/6/view.html.twig' with {'data': c.data} %}
Run Code Online (Sandbox Code Playgroud)
这也适用于控制器(也有自定义命名空间):
// TemplateArchiveController.php
return $this->render('@TemplateArchive/6/view.html.twig', ['data' => $c.getData()]);
Run Code Online (Sandbox Code Playgroud)
从[ Symfony Cookbook:Namespaced paths ]:
作为额外的好处,命名空间语法更快.
归档时间: |
|
查看次数: |
12224 次 |
最近记录: |