2016-06-30 90 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

这只适用于诡计。你必须将“块”交给变量。

我删除了你的例子有些线路因此多数民众赞成更容易阅读:

index.twig

{% 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

谢谢,我正在寻找什么。我尝试过,但没有将footer.twig中的块更改为变量。 – Fluinc