有没有办法让所有模板都继承母模板

时间:2012-07-30 07:18:48

标签: php templates symfony

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

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

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

我知道用这个:

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

如果不在每个tenmplate文件中写出来,有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

适用于Symfony 2.0

我相信您可以通过复制

来解决问题
TwigBundle/Resources/views/layout.html.twig

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

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

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

我高度推荐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