我在这个结构中有一个bundleAcme/Bundle/BlogBundle
:
app/...
app/Resources/views/base.html.twig
bin/...
Acme/Bundle/BlogBundle/Resources/views/Default/blog.html.twig
src/...
src/AppBundle/...
在
blog.html.twig
中,我想首先将base.html.twig
扩展为关闭,然后自动生成AppBundle
。这是我最好的猜测:
{% extends '@AppBundle/base.html.twig' %}
{% block body %}
test
{% endblock body %}
我试过其他几种语法,但似乎都不管用。那么,如何将引用模板文件与ov
AppBundle
文件夹交互?医生(对我没有帮助):http://symfony.com/doc/current/templating/namespaced_paths.html
最佳答案
在应用程序中安装了TwigBundle
后(默认情况下在SE中)和AppBundle
,您将自动注册这些树枝的路径(按此顺序):
# config.yml
twig:
paths:
# behind the scenes!!
src/AppBundle/Resources/views: App # without Bundle suffix (convention)
app/Resources/views: ~ # %kernel.root_dir%/Resources/views
这意味着
App
名称空间(@App
作为twig的惯例)被用来专门引用src/AppBundle/Resources/views
中的任何模板:'(@App === src/AppBundle/Resources/views)/base.html.twig'
对于
~
符号(在php中表示null
),当没有引用任何命名空间来加载某个模板时,将使用app/Resources/views
路径:'(null === app/Resources/views/)base.html.twig'
因此,如果
{% extends 'base.html.twig' %}
位于app/Resources/views
目录中,则需要。关于php - Symfony:扩展原始的AppBundle模板文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45639038/