我正在为我的 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 模板,并在您创建它们时将其包含在所有其他模板中,而不是重载 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