2016-03-06 93 views
0

問題呈現在擴展塊 - >包含模板

navbar.html.twig我有一個看起來像這樣的塊:

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

這NavBar是include d我的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由底座,所以沒有父/子關係存在的東西。

問題

什麼是好的(或)的方式來讓我重寫一個包含模板塊擴展模板?

+0

包括不能從模板,其中包括他們 – DarkBee

回答

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

我想這一點,但現在它不使所述導航欄的所有變化的塊。但它仍然在導航欄中顯示「我想在導航欄中放置的東西」。 – Alec

+0

從您發佈的內容「//navbar.html.twig {%block back_link%} {%endblock%}」您的導航欄只有該塊。所以如果你看到「我想要的東西在導航欄中。」這意味着塊被渲染 –

+0

如果你需要更多的內容,你可以在像navber_conent這樣的新塊中設置這個內容,並且使用{{block('navbar_content')}},這個塊裏面有back_link –