在扩展中渲染块 - >包含的模板

时间:2016-03-06 07:21:20

标签: symfony twig twig-extension

问题

navbar.html.twig我有一个看起来像这样的块:

//navbar.html.twig
{% block back_link %}{% endblock %}

此导航栏位于我的include base.html.twig之后。

//base.html.twig
{% include navbar.html.twig %}

然后我的页面模板extend就是基础。

//page.html.twig
{% extends base.html.twig %}

...

{% block back_link %} Things i want in the navbar. {% endblock %}

但导航栏中我想要的东西不会显示在导航栏中,因为它是基座的include d,所以那里没有父/子关系。

问题

让我覆盖扩展模板中包含的模板中的块有什么好的(或任何)方式?

1 个答案:

答案 0 :(得分:0)

如果你理解你的想法,你想要一个导航栏的可重用内容,分成navbar.html.twig,可以在几个模板中使用吗?

所以你可以用"使用" http://twig.sensiolabs.org/doc/tags/use.html

在navbar.html.twig

//navbar.html.twig
{% block back_link %}{% endblock %}

在base.html.twig。

//base.html.twig
{% use '::navbar.html.twig' %}
{{ block('back_link') }}

在page.html.twig

{% extends '::base.html.twig' %}
{% block back_link %} Things i want in the navbar. {% endblock %}