2012-01-26 52 views

回答

3

不能在Twig中扩展块。如果你扩展一个模板(并且调用parent(),这种类型的继承),你可以重载它。

如果扩展包,可以重载其控制器或资源。我不认为你真的可以从父包中扩展模板,因为路径是如何解决的。您可以在Extending a Bundle文档章节阅读更多关于它的信息。

此外,How to use Bundle Inheritance to Override parts of a Bundle可能会澄清一些事情。

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

关于路线:我想你必须在应用程序配置文件中定义每条路线,如果你想有选择地导入它们。

0

如果你想使用模板从另一个包,你不希望覆盖整个模板您使用此:

// Your file in ProjectAplhaBundle index.html.twig 

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

{% block content %} 
    {{ parent() }} 
    Somethings added to the existing content  
{% endblock %} 

对于从路由只是BetaBundle删除(在app文件夹的routing.yml)全航线只留下一个像这样的东西:

ProjectBetaBundle: 
    resource: "@ProjectBetaBundle/Resources/config/routing.yml" 
    prefix: /

然后你指定@ ProjectBetaBundle /资源的所有路由/配置/ routing.yml中

我希望帮助。干杯

+1

我知道,一般情况下我可以使用这些命令,但我的'BetaBundle'有一个'的getParent()'函数,我不能使用 '{%扩展“AlphaBundle :: layout.html.twig”% }'BetaBundle'中的' 因为它会产生一个循环。 – jury89

相关问题