Hello Friends,
I am tring to call block from the controller action but its not working and throwing me an error as
Exception #0 (OutOfBoundsException): No element found with ID 'left'.
$this->_addContent($this->_view->getLayout()->createBlock('\Demo\Test\Block\Adminhtml\Method\Edit')); $this->_addLeft($this->_view->getLayout()->createBlock('\Demo\Test\Block\Adminhtml\Method\Edit\Tabs'));
Can you please tell me how can i achieve above things?
Thanks in advance
Hello SanjayJethva,
We are not sure what you mean, but maybe this can help you:
1) For render all layouts you can use:
$this->_view->loadLayout(); $this->_view->renderLayout();
2) Try to run code without "addContent"and "addLeft" methods . Maybe they cause the problem.
3) If your methods need html, you can get it using the following:
$this->_view->getLayout()->createBlock('\Demo\Test\Block\Adminhtml\Method\Edit\Tabs')->toHtml();
4) Perhaps you need to use layouts for adding tabs:
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="admin-2columns-left" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> <head> ... </head> <body> <referenceContainer name="content"> <block class="Demo\Test\Block\Adminhtml\Method\Edit" name="demotest_method_edit" /> </referenceContainer> <referenceContainer name="left"> <block class="Demo\Test\Block\Adminhtml\Method\Edit\Tabs" name="demotest_method_edit_tabs"> <block class="Demo\Test\Block\Adminhtml\Method\Edit\Tabs\General" name="demotest_general" /> <action method="addTab"> <argument name="name" xsi:type="string">general_section</argument> <argument name="block" xsi:type="string">demotest_general</argument> </action> </block> </referenceContainer> </body> </page>
Hope it will work for you.
Regards,
Plumrocket Team