2016-07-28 151 views
0

我需要在component.twig中包含child-1.twig和child-2.twig,並且在page.twig中包含component.twig。通過從Twig變量包含路徑?

在我page.twig:

{% set items = [ 
    '{% include "child-1.twig" %}', 
    '{% include "child-2.twig" %}' 
] %} 

{% include "component.twig" with items %} 

在component.twig:

<div class="component"> 
    {% for item in items %} 
    {{ item }} 
    {% endfor %} 
</div> 

的複雜性來自於事實,我不能修改component.twig,只有page.twig。我上面的代碼將工作,如果{% include "child-1.twig" %}{% include "child-2.twig" %}被呈現,但相反,他們被打印到頁面上的一串文字。

我可以做一些類似於我的方法,但讓孩子包括實際運行嗎?

+0

爲什麼你就不能修改'component.twig '? – DarkBee

+0

該文件正由另一個應用程序在不同的實例中使用,它將包含其他子模板。 – Evans

回答

0

我可以建議你在該文件(component.twig

{% block includes %}{% endblock %} 

然後你就可以做到這一點添加一個空塊:

{% embed "component.twig" with items %} 
    {% block includes %} 
     {% include "child-1.twig" %} 
     {% include "child-2.twig" %} 
    {% endblock %} 
{% endembed %}