2011-09-20 43 views
0

重新聲明塊我有這樣的結構:TWIG誼如何從包含的文件

layout.twig:

{% include header.twig %} 
{% block block1 %} 
{% endblock %} 

header.twig:

{% block block2 %} 
{% endblock %} 

index.twig :

{% extends "layout.twig" %} 
{% block block1 %} text for block 1 {% endblock %} 
{% block block2 %} text for block 2 {% endblock %} 

當我渲染index.twig如預期的那樣,塊1被替換爲文本值,但塊2保持空白。爲什麼block2不會被重新聲明的內容所取代?對於TWIG而言是否正確,或者僅僅是Yii Framework的TWIG實現問題?我應該如何改變結構以使其如所描述的那樣工作?提前

感謝)

+0

這是一種正常的行爲。看到這裏https://github.com/fabpot/Twig/issues/523 – Mikhail

回答

0

這只是因爲結構中,通常的方法是在佈局的根塊,並在模板覆蓋一些塊。

layout.twig:

{% block body %} 
    {% block block2 %} 
    {% include header.twig %} 
    {% endblock %} 

    {% block block1 %}default text for block 1 
    {% endblock %} 
{% endblock %} 

header.twig:

default text for block 2 

index.twig:

{% extends "layout.twig" %} 
{% block block1 %} text for block 1 {% endblock %} 
{% block block2 %} text for block 2 {% endblock %} 

輸出:

text for block 1 
text for block 2 
相關問題