Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Magento 2 nested blocks

Tags:

block

magento2

I'm migrating from Magento 1.x to Magento 2

I created default.xml file to customize the existing layout.

My situation is that I have a div named "main-header" and I want a nested div inside it named "menu".

Now, I know blocks can have templates. So I tried to create a nested block structure (don't know if it is valid in 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>

In the top_header.phtml, I'm trying to call:

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

I know the above statement I took from Magento 1.x

like image 216
Ashutosh Avatar asked Dec 19 '15 13:12

Ashutosh


1 Answers

Silly mistake, I was missing echo:

<?php echo $block->getChildHtml('header.menu'); ?>
like image 141
Ashutosh Avatar answered Nov 01 '22 18:11

Ashutosh