2014-01-10 49 views
1

我的模板文件這樣的結構:嫩枝:如何顯示塊中包括模板

{# layout.html #} 

    <!DOCTYPE HTML> 
    <html lang="pt-br"> 
    <head> 
     <meta name="viewport" content="width=device-width, initial-scale=1.0" charset="UTF-8"> 
     <title>Twig Project</title> 
    </head> 

    <body> 
     <div id="content"> 
     {% block body %} {% endblock body %} 
     </div> 
     <div id="footer"> 
     {% block footer %} {% endblock footer %} 
     </div> 
    </body> 
    </html> 

---------- 

{# specialpage.html #} 

Especial content 

{% block footer %} THIS IS A SPECIAL FOOTER {% endblock footer %} 

---------- 

{# page1.html #} 

{% extends "layout.html" %} 

{% include 'specialpage.html' %} 

問題:當我包括「specialpage.html」的「塊頁腳」與mesage「這是一個特殊的徒步旅行者「不顯示。爲什麼?

回答

1

我一直在努力解決同樣的問題。我希望Twig的包含標籤首先插入包含的模板的內容,然後解析整個內容,從包含的頁面(特殊頁面)引用這些內容時,有效地替換擴展頁面(佈局)中的塊。

但是相反,我認爲include標籤首先解析包含的模板,然後在解析父頁面之前插入解析的包含模板的內容。

該文檔說明include標籤包含具有繼承父範圍的模板。但是這似乎只適用於變量,而不適用於已定義的塊。我假設你不能覆蓋父頁面中的塊或包含模板中的父佈局。

我覺得解決之道在於重寫我的佈局模板,使盡可能多的使用標記的「延伸」,我可以,這個標籤似乎是在啓用所需的遺傳結構的關鍵。

雖然我會重寫我的模板,並且假設您也應該有一點希望,我們做錯了,有人會以正確的方式來做到這一點。