2012-02-14 46 views
0

我在Symfony 2中编程,在这里我有两个软件包需要维护。他们的观点延长base.html.twig(应用范围模板),如:Symfony 2和TWIG中的软件包配置变量

{% extends '::base.html.twig' %} 
... 

现在base.html.twig样子:

... 
<title>{{ page_title }}</title> 
... 

现在的问题是如何以及在哪里我可以定义变量page_titel以使这两个包具有不同的页面标题。我知道,我可以在控制器的每个操作方法中的模板呈现中设置变量,但是由于页面标题在一个包中是静态的,因此我正在寻找一种方法,我只需要定义变量一次。例如:

#app/config/config.yml 
twig: 
    global: 
    foo: bar 

但不是整个应用程序,而是整个包! 任何提示?

回答

2

考虑阅读TWIG块。 http://symfony.com/doc/current/book/templating.html

在您的基本模板的使用:

<title>{% block title %}{% endblock %}</title> 

然后在你的应用程序模板中使用:

{% block title %}Bundle 1 Title{% endblock %} 

的标题会神奇地显示为标题的内容。

而且我不是100%确定我理解你的问题。但是你可以给每个包分配自己的base.html,扩展主base.html并设置标题。该捆绑包中的所有内容都将扩展捆绑包的基础。所以标题只需要设置在一个地方。