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'); ?>
改为创建嵌套容器,这应该可以正常工作,您可以添加任何 类 并使用任何标签进行包装。
我正在从 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'); ?>
改为创建嵌套容器,这应该可以正常工作,您可以添加任何 类 并使用任何标签进行包装。