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”%}
,因为它会生成一个循环。