2013-09-21 5 views
11

Wie kann ich einen Block in einer enthaltenen Vorlagendatei überschreiben?Zweig: Block kann nicht in der enthaltenen Datei überschrieben werden

Beispiel:

{# layout.html #} 
{% include "menu.html" %} 

{# menu.html #} 
{% block overrideme %}{% endblock %} 

{# index.html #} 
{% extends "layout.html" %} 
{% block overrideme %}Overriden{% endblock %} 

Ich habe irgendwo gelesen, dass ein Merkmal Funktion implementiert ist? Ich kann jedoch keine Dokumentation darüber finden, weiß jemand, wie ich das schaffen könnte?

Antwort

15

Wenn Sie Blöcke innerhalb einer Datei, die Sie einschließen, überschreiben möchten, sollten Sie sie "einbetten" anstatt sie "einzuschließen".

{% embed "menu.html" %} 
    {% block overrideme %} 
     Overriden 
    {% endblock %} 
{% endembed %} 

Lesen Sie die Dokumentation für weitere Informationen: http://twig.sensiolabs.org/doc/tags/embed.html

Verwandte Themen