Magento 2 嵌套块

Magento 2 nested blocks

我正在从 Magento 1.x 迁移到 Magento 2

我创建了 default.xml 文件来自定义现有布局。

我的情况是,我有一个名为 "main-header" 的 div,我想要一个名为 "menu" 的嵌套 div。

现在,我知道块可以有模板了。所以我尝试创建一个嵌套块结构(不知道它在 Magento 2 中是否有效):

<referenceContainer name="header.container">
        <container name="common-header" label="Header common to all pages" as="common-header" htmlTag="div" htmlClass="main-header">
            <block class="Mymodule\Test\Block\Header" template="header/top_header.phtml">
                <block name="header.menu" class="Mymodule\Test\Block\Menu" template="header/menu.phtml"/>
            </block>
        </container>
    </referenceContainer>

在 top_header.phtml 中,我正在尝试调用:

<?php $block->getChildHtml('header.menu'); ?>

我知道我从 Magento 获取的上述声明 1.x

愚蠢的错误,我错过了回声:

<?php echo $block->getChildHtml('header.menu'); ?>

改为创建嵌套容器,这应该可以正常工作,您可以添加任何 类 并使用任何标签进行包装。