是否可以在symfony2中扩展2个模板?

时间:2012-06-03 10:49:51

标签: symfony

我正在考虑在symfony2中组织我的基本布局,其中只包含3个块:标题,内容和页脚。我希望每个块都有一个模板。 “内容”模板将是一个空的模板,仅显示每个部分的模板,遵循“3级”指令。 但我不知道如何包含页眉和页脚模板。我已经完成了创建“通过”模板,因此,例如,内容扩展页脚,页脚扩展标题,标题扩展基础,但它看起来非常糟糕。 感谢。

2 个答案:

答案 0 :(得分:4)

你可以使用embed标签,它结合了include和extends的行为。它允许您包含另一个模板的内容,就像include do一样。但它也允许您覆盖包含模板中定义的任何块,例如扩展模板时, 但需要1.8版本

The embed tag

答案 1 :(得分:3)

你不能在Twig中扩展多个模板 ,这无论如何都是不合逻辑的。
你应该使用include,这有点不同。

常见的方法是有一个基本模板,除了将包含在其中的页眉和页脚之外,它将被所有其他模板扩展。

base.html.twig:

...
<body>
    {% include '::header.html.twig' %}
    {% block body %}{% endblock %}
    {% include '::footer.html.twig' %}
</body>
...

在其他模板中,您的包的视图例如:

{% extends '::base.html.twig' %}

{% block body %}
Hello world!
{% endblock %}