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

3

我正在使用Symfony开发我的Web应用程序。

我有很多没有任何extend标签的模板文件。

目前它们只显示自己的内容,但我希望它们都能扩展自母模板。

我知道可以使用以下代码:

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

有没有不需要在每个模板文件中编写的方法来实现这个?

5
不行。没有任何方法可以做到这一点。 - Vitalii Zurian
1个回答

0

对于Symfony 2.0

我相信你可以通过复制来绕过这个问题。

TwigBundle/Resources/views/layout.html.twig

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

在那里,您可以覆盖Twig基本文件,并且它应该影响所有模板。

将来,在启动项目时,我会创建一个base.html.twig模板,并在创建其他模板时将其包含在内,而不是超载twig base

我强烈推荐RTM:http://symfony.com/doc/current/book/templating.html

对于Symfony 1.4

layout.php(位于apps//templates/layout.php中)是默认的全局模板。全局模板用于公共代码(标题,页脚,bot代码,Google Analytics)。

您可以在与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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接