2016-06-30 4 views
2

含まれているブロックを無効にしようとしています。内部の小枝オーバーライドブロック

{# index.twig #} 
{% extends "default.twig" %} 
{% block content %} 
    html page content 
{% endblock %} 
{% block footer %} 
    javascript 
{% endblock %} 

{# default.twig #} 
{% include "header.twig" %} 
{% block content %} 
{% endblock %} 
{% include "/layouts/resources/footer.twig" %} 

{# footer.twig #} 
{% block footer %} 
{% endblock %} 

私も埋め込みを試みましたが、どちらもうまくいきませんでした。

{# index.twig #} 
{% extends "default.twig" %} 
{% block content %} 
    html page content 
{% endblock %} 
{% block js %} 
    javascript 
{% endblock %} 

{# default.twig #} 
{% include "header.twig" %} 
{% block content %} 
{% endblock %} 
{% embed "/layouts/resources/footer.twig" %} 
    {% block footer %} 
    {% block js %} 
    {% endblock %} 
    {% endblock %} 
{% endembed %} 

{# footer.twig #} 
{% block footer %} 
{% endblock %} 

私はこれを 'include with'で行うことができますが、それを動作させることはできませんでした。

答えて

4

これは、トリックでのみ機能します。変数として "ブロック"を渡す必要があります。

読みやすくするためにthatsのように、私はあなたの例のいくつかの行を削除:

{% extends "default.twig" %} 
{% block content %} 
    html page content 
{% endblock %} 
{% block footer %} 
    javascript 
{% endblock %} 

default.twig

{% block content %} 
{% endblock %} 
{% include "/layouts/resources/footer.twig" with {footer: block('footer')} %} 

footer.twig

{% if footer is not empty %} 
    {{ footer|raw }} 
{% endif %} 
+0

index.twigありがとう、ちょうど私が探していたもの。私はそれを試みたが、footer.twigのブロックを変数に変更しなかった。 – Fluinc