我在这个结构中有一个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 %}

我试过其他几种语法,但似乎都不管用。那么,如何将引用模板文件与ovAppBundle文件夹交互?
医生(对我没有帮助):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/

10-08 21:36