0

问题

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由基地组成的,所以那里没有父/子关系。

问题

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

4

1 回答 1

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 %}
于 2016-03-06T10:51:05.297 回答