getBlockSingletone в magento 2
Как мы называем getBlockSingleton()
в magento 2
echo $this->getBlockSingleton('newmodule/newblock');
1
1 answers
Эта функция также доступна в magento 2, но вы не можете использовать заводской шаблон newmodule/newblock
. Просто вам нужно использовать fullClass Name
вашего класса блоков.
Если вы пробовали в phtml, то попробуйте
$block->getBlockSingleton({Full\Block\Class\Name\Here}::class);
Если класс блока:
$это->getLayout()->Getblocksingleton({Полный\Блок\Класс\Имя\Здесь}::класс)
Пример:
$this->getLayout()
->getBlockSingleton(\Magento\Customer\Block\Form\Register::class)
Звоните куда угодно
Сначала вам нужно сделать инъекцию планировка класс интерфейса и класс содержимого если это not available your class
.
`Magento\Framework\View\LayoutInterface`
`\Magento\Framework\App\Helper\Context`
В _constuct
функция
namespace {Vendorname}\{Module}\{RestOfPathOfclass};
class {ClassName} .....
{
/**
* Layout
* @var \Magento\Framework\View\LayoutInterface
*/
protected $_layout;
public function __construct(
.....
\Magento\Framework\App\Helper\Context $context,
\Magento\Framework\View\LayoutInterface $layout
.......
) {
$this->_layout = $layout;
parent::__construct($context);
}
public function getMySingleTon() {
$block = $this->_layout->getBlockSingleton({Full\Block\Class\Name\Here}::class);
$html = '';
if($block){
$html = $block->toHtml();
}
return $html;
}
}
0
Author: Amit Bera, 2017-10-27 04:54:35