2016-01-12 64 views
0

我試圖將{% block body %}置入{% include 'bundle::...' %}。這裏是我的代碼如下:枝條塊內容分爲包含

{% extends '::base.html.twig' %} 

{% block title %}{{ id }}{% endblock %} 

{% block content %} 

    {% include 'scraperBundle::Event/sideLeft.html.twig' %} 
    {% include 'scraperBundle::Event/sideRight.html.twig' %} 

{% endblock %} 

{% block body %} 
    stuff here to go ingo block body 
{% endblock %} 

的問題是一切正確加載,除了我{% block body %}不進入它應該在的地方,這是在{% include 'scraperBundle::Event/sideLeft.html.twig' %}文件位置:

<div class="event-info"> 
    {% block body %}{% endblock %} 
</div> 

我不是很好精通樹枝,任何人都知道正確的方法或如何做到這一點?

謝謝。

==============編輯==============

我可以有嵌套{% block nameof %}

{% extends '::base.html.twig' %} 

{% block title %}{{ id }}{% endblock %} 

{% block content %} 

    {% embed 'scraperBundle::Event/sideLeft.html.twig' %} 

     {% block body %} 
     {% endblock %} 

    {% endembed %} 

    {% embed 'scraperBundle::Event/sideRight.html.twig' %} 

{% endblock %} 

==============編輯2(工作)==============

增補第二{% endembed %}現在它作品。我想你確實可以嵌套{% block %}的東西。

我可以嵌套{% block nameof %}嗎?

{% extends '::base.html.twig' %} 

{% block title %}{{ id }}{% endblock %} 

{% block content %} 

    {% embed 'scraperBundle::Event/sideLeft.html.twig' %} 

     {% block body %} 
     {% endblock %} 

    {% endembed %} 

    {% embed 'scraperBundle::Event/sideRight.html.twig' %} 
    {% endembed %} 

{% endblock %} 

回答

1

您不能從include d模板中覆蓋塊。您正在尋找的是embed

# template1.html.twig 

{% embed "template2.html.twig" %} 
    {% block override_me %} 
     This will override "HAI" text 
    {% endblock %} 
{% endembed %} 

# template2.html.twig 

Something here 
{% block override_me %}HAI{% endblock %} 
+0

in'base.html.twig'我有一個名爲content的塊。在我上面列出的內容中,我有一個帶有這兩個(現在嵌入的)文件的「塊」。你可以嵌套塊嗎? [注意:我列出了上面的編輯代碼,以便您可以清楚] – Kenny

1

您無法指定或覆蓋所包含模板中的塊。有關爲什麼不起作用的一些背景信息,請參閱this answer。儘管如此,

{% embed %}會做你所需要的。

對於第二個問題:塊可以嵌套。嵌套塊在實踐中很常見。