是否有任何方法可以让所有模板都继承母模板


Is there any way that all templates should inherit mother template

我正在为我的web应用程序使用symfony。

我的文件夹中有许多没有任何扩展标记的模板。

目前,他们只开放自己的内容,但我希望所有这些都应该从母亲模板扩展。

我知道使用这个:

{% extends 'AnmeBundle::layout.html.twig' %}
{% block body %}

有没有什么方法可以做到这一点,而不在每个模板文件中都写这一点?

对于Symfony 2.0

我相信你可以通过复制来解决问题

TwigBundle/Resources/views/layout.html.twig

app/Resources/TwigBundle/views/layout.html.twig

在那里,你可以覆盖Twig基础文件,它应该会影响你的所有模板。

将来在启动一个项目时,我会创建一个base.html.twig模板,并在创建它们时将其包含在所有其他模板中,而不是重载基于trick的

我强烈建议RTM:http://symfony.com/doc/current/book/templating.html

对于Symfony 1.4

layout.php(在apps//templates/layout.php中)是默认的全局模板。全局模板用于通用代码(页眉、页脚、机器人程序代码、谷歌分析)。

您可以在layout.php的同一文件夹中创建自己的全局模板,并使用view.yml强制不同的操作使用不同的全局模板。

像这样:

indexSuccess:
  layout: my_layout

或者你可以在动作中以编程方式完成:

$this->setLayout('my_layout');

或在模板中

<?php decorate_with('my_layout') ?>

我强烈建议RTM:http://www.symfony-project.org/gentle-introduction/1_4/en/07-Inside-the-View-Layer