Symfony2:如何扩展捆绑包?

Symfony2:如何扩展捆绑包?,symfony,bundle,extend,Symfony,Bundle,Extend,如果我有AlphaBunde它是BetaBundle的父级,我如何在不覆盖整个模板的情况下扩展细枝块 如何导入仅存在于BetaBundle中的路由?您不能在Twig中扩展块。如果扩展一个模板(并调用parent()作为继承使用),则可以重载它 如果扩展捆绑包,则可能会使其控制器或资源过载。我认为,由于路径是如何解析的,所以无法从父捆绑包扩展模板。您可以在文档一章中了解更多信息 此外,可能会澄清一些事情 请记住检查以了解如何在应用程序中重载模板 关于路由:如果要有选择地导入路由,我认为必须在应用程

如果我有
AlphaBunde
它是
BetaBundle
的父级,我如何在不覆盖整个模板的情况下扩展细枝块


如何导入仅存在于BetaBundle中的路由?

您不能在Twig中扩展块。如果扩展一个模板(并调用parent()作为继承使用),则可以重载它

如果扩展捆绑包,则可能会使其控制器或资源过载。我认为,由于路径是如何解析的,所以无法从父捆绑包扩展模板。您可以在文档一章中了解更多信息

此外,可能会澄清一些事情

请记住检查以了解如何在应用程序中重载模板


关于路由:如果要有选择地导入路由,我认为必须在应用程序的配置文件中定义每个路由

不能在细枝中延伸块。如果扩展一个模板(并调用parent()作为继承使用),则可以重载它

如果扩展捆绑包,则可能会使其控制器或资源过载。我认为,由于路径是如何解析的,所以无法从父捆绑包扩展模板。您可以在文档一章中了解更多信息

此外,可能会澄清一些事情

请记住检查以了解如何在应用程序中重载模板


关于路由:如果要有选择地导入路由,我认为必须在应用程序的配置文件中定义每个路由

如果要使用另一个捆绑包中的模板,并且不想覆盖整个模板,请使用以下方法:

// Your file in ProjectAplhaBundle index.html.twig

{% extends "ProjectBetaBundle::layout.html.twig" %}

{% block content %}
    {{ parent() }}
    Somethings added to the existing content    
{% endblock %}
对于just BetaBundle中的路由,请删除所有路由(app文件夹中的routing.yml),并仅保留一条路由,如下所示:

ProjectBetaBundle:
    resource: "@ProjectBetaBundle/Resources/config/routing.yml"
    prefix:   /
然后在@ProjectBetaBundle/Resources/config/routing.yml中指定所有路由


我希望这有帮助。干杯

如果您想使用另一个捆绑包中的模板,并且不想覆盖整个模板,请使用以下方法:

// Your file in ProjectAplhaBundle index.html.twig

{% extends "ProjectBetaBundle::layout.html.twig" %}

{% block content %}
    {{ parent() }}
    Somethings added to the existing content    
{% endblock %}
对于just BetaBundle中的路由,请删除所有路由(app文件夹中的routing.yml),并仅保留一条路由,如下所示:

ProjectBetaBundle:
    resource: "@ProjectBetaBundle/Resources/config/routing.yml"
    prefix:   /
然后在@ProjectBetaBundle/Resources/config/routing.yml中指定所有路由


我希望这有帮助。干杯

我知道通常我可以使用这些命令,但是我的
BetaBundle
有一个
getParent()
函数,我不能在
BetaBundle
中使用
{%extend“AlphaBundle::layout.html.twig”%}
,因为它会生成一个循环。我知道通常我可以使用这些命令,但是我的
BetaBundle
有一个
getParent()
函数,我不能在
BetaBundle
中使用
{%extend“AlphaBundle::layout.html.twig”%}
,因为它会生成一个循环。