Symfony 2和TWIG中的Bundle范围的配置变量

时间:2012-02-14 23:19:02

标签: symfony twig

我在Symfony 2中编程,我有两个要维护的包。他们的观点扩展了base.html.twig(app-wide模板),如:

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

现在base.html.twig看起来像是:

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

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

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

但不是应用程序范围,而是捆绑范围! 任何提示?

1 个答案:

答案 0 :(得分:2)

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

在您的基本模板中使用:

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

然后在您的应用模板中使用:

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

标题将神奇地显示为标题内容。

我并非100%确定我理解你的问题。但是你可以为每个bundle提供它自己的base.html,它扩展了master base.html并设置了标题。然后,该捆绑中的所有内容都将扩展捆绑基础。所以标题只需要设置在一个位置。