2

I want to get my header part as html and I will use this in some other site with API call. For that I am trying to render using Magento\Theme\Block\Html\Header block and the following code:

$this->_view->getLayout()
    ->createBlock('Magento\Theme\Block\Html\Header')
    ->setTemplate('Magento_Theme::html/header.phtml')
    ->toHtml();

But it is not working. Can someone please suggest how to correct this or some other method to implement.

4
  • what you getting by this code?
    – kunj
    Jun 8 '18 at 11:20
  • I am getting the error like Invalid template file: 'Magento_Theme::html/footer.phtml' in module: 'Magento_Theme' block's name: 'html\\footer_0' Jun 8 '18 at 11:38
  • try without template $this->_view->getLayout()->createBlock('Magento\Theme\Block\Html\Header')->toHtml();
    – kunj
    Jun 8 '18 at 12:15
  • I am trying to do this also, but I've got an empty string as result. Did you solved it?
    – vaso123
    Mar 21 '19 at 10:59
0

Can't you use $block for any reason instead of $this->_view?

update

One more thing, template path should use / instead of \

Magento_Theme::html/header.phtml
5
  • particular reason for using the $this->_view, as mentioned in the post I am going to use this as API. So I need to get the html in model. In model it is not possible to use $block->getLayout() or $this->getLayout(). Jun 8 '18 at 11:43
  • Actually I was used the template as Magento_Theme::html/header.phtml. But in the post only by mistake I put the back slash Jun 8 '18 at 11:44
  • which error do you see? or it just doesn't print anything? any info in var/log files? Jun 8 '18 at 12:38
  • Yes, I am getting the error like Invalid template file: 'Magento_Theme::html/footer.phtml' in module: 'Magento_Theme' block's name: 'html\\footer_0' Jun 8 '18 at 12:57
  • Try setting just html/header.phtml, without specifying module Jun 8 '18 at 13:13
0

Try this code :

echo $this->getLayout()
    ->createBlock("Magento\Theme\Block\Html\Footer")
    ->setTemplate("Magento_Theme::html/footer.phtml")
    ->toHtml();
1
  • Hi, as I mentioned in the post, this is to be implemented as Api. I can't use $this class in model or even in controller to get the layout Jun 8 '18 at 11:40

This site is temporarily in read only mode and not accepting new answers.

Not the answer you're looking for? Browse other questions tagged .