0

I want to set template in Block custom.php. how can i do it? I tried following:

protected function _prepareLayout() {
        $this->getLayout()->createBlock('Xyaddons\Productzoom\Block\Product\View')->setTemplate('product/image.phtml')->toHtml();

        return parent::_prepareLayout();
    }

it's not running successfully.

Add new quetion

I want create funcion in custom block use to set template. it same

public function setCustomTemplate(){
    if($isActive ==="1"){
       return $this->getLayout()->getBlock('.....')->setTemplate('custom/view.phtml');
      }
}

how do it? any thank help :)

4
  • what is the error that you are getting ? the format seems correct. Try removing return from return parent::_prepareLayout(); and check Commented Nov 3, 2015 at 6:31
  • it not run file template image.phtml
    – xanka
    Commented Nov 3, 2015 at 6:39
  • I removed it not change.
    – xanka
    Commented Nov 3, 2015 at 6:50
  • You should start your question by stating at a high level what it is you wish to accomplish.
    – benmarks
    Commented Nov 3, 2015 at 12:38

2 Answers 2

4

Use $this->addChild function to add child block. Ex:

    $this->addChild(
        'back_button',
        'Magento\Backend\Block\Widget\Button',
        ['label' => __('Back'), 'template' => 'Vendor_Moduel::template.phtml' 'class' => 'cancel']
    );

Then in parent block template use $this->getChildHtml('back_button'); to render child block with template.

PS. Better to use layout to define blocks and templates

0
4

In your block file,

protected function _construct()
    {
        parent::_construct();
        $this->setTemplate('Magento_Config::page/system/config/robots/reset.phtml');
    }

check for _construct() method not confused with __construct().

You can set your Namespace_ModuleName :: path/to/template.phtml

3
  • I don't need parent consturcter, then How do I declare set template
    – Jaisa
    Commented Jan 12, 2018 at 6:16
  • you can just remove parent:construct in above function Commented Jan 12, 2018 at 6:19
  • @RakeshJesadiya, can we pass argument to the template like product id? Commented Jan 28, 2019 at 14:09

Not the answer you're looking for? Browse other questions tagged or ask your own question.