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 %}

しかし、navbar に必要なものは、navbar に表示されません。これはinclude、ベースのそばにあるため、そこに親子関係がないためです。

質問

拡張テンプレートに含まれるテンプレートのブロックをオーバーライドできるようにする良い (または任意の) 方法は何ですか?

4

1 に答える 1

0

あなたのアイデアを正しく理解しているなら、いくつかのテンプレートで使用できる navbar.html.twig に分離された、navbar 用の再利用可能なコンテンツが必要ですか?

したがって、「使用」でそれを行うことができます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 に答える