Symfony包继承和细枝模板覆盖
我有一个叫做VendorDeliveryBundle的第三方包 我想覆盖我在我的一个应用程序细枝模板中使用以下语法调用的其中一个细枝模板:Symfony包继承和细枝模板覆盖,symfony,Symfony,我有一个叫做VendorDeliveryBundle的第三方包 我想覆盖我在我的一个应用程序细枝模板中使用以下语法调用的其中一个细枝模板: {%include'@VendorDelivery/Frontend/Booking/_delivery.html.twig'和{'form':form}仅限%} 这样,就可以调用供应商模板 但是如果我想通过在AppKernel中注册覆盖包(如中所述)并创建以下内容来覆盖此模板: App/DeliveryBundle/Resources/views/Fron
{%include'@VendorDelivery/Frontend/Booking/_delivery.html.twig'和{'form':form}仅限%}
这样,就可以调用供应商模板
但是如果我想通过在AppKernel中注册覆盖包(如中所述)并创建以下内容来覆盖此模板:
App/DeliveryBundle/Resources/views/Frontend/Booking/_delivery.html.twig
此模板不会覆盖供应商模板
但是如果我用这个语法来代替
{%include'VendorDeliveryBundle:Frontend:Booking/_delivery.html.twig'和{'form':form}仅%}
模板被覆盖
似乎@syntax没有按预期工作
因此,考虑到symfony文档,我想知道这是错误还是正常行为:
仅当使用@FOSUserBundle/resources/config/routing/security.xml方法引用资源时,资源重写才起作用。如果引用资源时未使用@BundleName快捷方式,则不能以这种方式重写它们
谢谢,
@
在twig语法中是一个名为“名称空间路径”的功能。()
使用{%include'Bundle:Folder:template%}
的功能与{%include'@Bundle\Folder\template%}
不同
对于示例,如果覆盖fosub bundle:
{% include '@FOSUser/Security/login.html.twig' %} {# Will be fosub template #}
{% include '@User/Security/login.html.twig' %} {# Will be overrided template #}
{% include 'FOSUserBundle:Security:login.html.twig' %} {# Also will be overrided template #}
另外,我想补充一点,如果你只想覆盖一个模板(没有控制器、监听器等全局功能),你可以将模板添加到你的应用程序目录中。这篇
@
中详细描述了细枝语法中的一个功能,称为“名称空间路径”。()
使用{%include'Bundle:Folder:template%}
的功能与{%include'@Bundle\Folder\template%}
不同
对于示例,如果覆盖fosub bundle:
{% include '@FOSUser/Security/login.html.twig' %} {# Will be fosub template #}
{% include '@User/Security/login.html.twig' %} {# Will be overrided template #}
{% include 'FOSUserBundle:Security:login.html.twig' %} {# Also will be overrided template #}
另外,我想补充一点,如果你只想覆盖一个模板(没有控制器、监听器等全局功能),你可以将模板添加到你的应用程序目录中。在这篇文章中有很好的描述