Twig 小枝&x2014;打印到根块

Twig 小枝&x2014;打印到根块,twig,Twig,有一个名为index.html.twig的模板,它定义了以下块: {% block additional %}{% endblock %} {% block body %} {{ macros.renderModule(modules) }} {% endblock %} 其中,macros.renderModule是一个自定义宏,递归地呈现模块 每个模块模板(.html.twig)扩展base.html.twig如下: {% extends '::/modules/base.html.

有一个名为
index.html.twig
的模板,它定义了以下块:

{% block additional %}{% endblock %}

{% block body %}
  {{ macros.renderModule(modules) }}
{% endblock %}
其中,
macros.renderModule
是一个自定义宏,递归地呈现模块

每个模块模板(
.html.twig
)扩展
base.html.twig
如下:

{% extends '::/modules/base.html.twig' %} 
在a
.html.twig
中,我想打印到
附加的
块,即»根«。如果我将块移动到
base..html.twig
它会工作,因为每个类型都直接扩展»base«

如何打印到根目录中定义的块

更新

根据评论,这里有一个小说明:

1.:

+base.html.twig      //root
|
+--+index.html.twig //extends base.html.twig and
                    //defines a block »additional«
                    //starts the recursive call »macros.renderModule(…)«
                    //those calls use the templates shows below
2.:

+modules/base.html.twig      //base for each module
|
+--+modules/<type>.html.twig //extends modules/base.html.twig
                             //special template for each »type« of module
                             //**************
                             //PRINT TO block »additional«,
                             //defined in index.html.twig
                             //**************

您的意思是更改渲染宏的文件的内容?默认情况下,无法在
twig
中完成。您是否可以更精确地了解您到底想要实现什么?如果要从不属于当前模板继承链的模板渲染块,可以将该模板传递给
block()
函数(请参见)。但老实说,我不确定我是否真的理解了你的问题。
{% macro renderModule (modules) %}
  {% import _self as macros %}
  {% for module in modules %}
    {% include '::/modules/' ~ module.type ~ '.html.twig' with {module: module} %}
  {% endfor %}
{% endmacro %}