我在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
但不是应用程序范围,而是捆绑范围! 任何提示?
答案 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并设置了标题。然后,该捆绑中的所有内容都将扩展捆绑基础。所以标题只需要设置在一个位置。