Magento 2 – How to Call Template from a Controller

controllersmagento2template

I got this controller:

<?php    
class MyClass extends \Magento\Sales\Controller\Adminhtml\Order
{
    public function execute()
    {     
        echo "TEST";
    }
}
?>    

I want it to call a template. How can I do that?

Best Answer

check the below code

 /**
     * @var Magento\Framework\View\Result\PageFactory
     */
    protected $_resultPageFactory;

    /**
     * @param Context     $context
     * @param PageFactory $resultPageFactory
     */
    public function __construct(
        Context $context,
        PageFactory $resultPageFactory

    ) {
        $this->_resultPageFactory = $resultPageFactory;
        parent::__construct($context);

    }

    public function execute()
    {

        $resultPage = $this->_resultPageFactory->create();
        $resultPage->getConfig()->getTitle()->prepend(__(' heading '));

        $block = $resultPage->getLayout()
                ->createBlock('Companyname\Module\Block\blockname')
                ->setTemplate('Companyname_Module::test.phtml')
                ->toHtml();
        $this->getResponse()->setBody($block);
    }
}
Related Topic