twig:无法覆盖包含文件中的块

时间:2013-09-21 09:26:18

标签: php symfony twig

如何覆盖包含的模板文件中的块?

示例:

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

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

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

我在某处读到了特质功能的实现?我找不到任何关于它的文档,有没有人知道如何使这项工作?

1 个答案:

答案 0 :(得分:17)

如果你想覆盖你所包含的文件中的块,那么你应该“嵌入”它而不是“包含”它。

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

有关详细信息,请参阅文档:http://twig.sensiolabs.org/doc/tags/embed.html