ماذا سيكون Mage::getSingleton('core/layout') في Magento 2؟
-
13-12-2019 - |
سؤال
في Magento 1 يمكنني إدخال قالب من خلال البرمجة كما هو موضح أدناه.
$layout = Mage::getSingleton('core/layout');
$block = $layout->createBlock('module/module_block_identifier');
$block->setTemplate('module/test.phtml');
في Magento 2، كيف يمكنني إدخال قالب كما هو موضح أعلاه؟
المحلول
يمكنك استخدام:
giveacodicetagpre. class generaceticetagcode كما \Magento\Framework\View\Result\Layout
نصائح أخرى
إذا كنت داخل فئة كتلة يمكنك ببساطة استخدام:
$layout = $this->getLayout();
....
إذا كنت في وحدة تحكم فأنت بحاجة إلى حقن المنشئ في مثيل \Magento\Framework\View\LayoutFactory
واستخدم ذلك:
protected $layoutFactory;
public function __construct(
...
\Magento\Framework\View\LayoutFactory $layoutFactory,
....
) {
...
$this->layoutFactory = $layoutFactory;
...
}
وبعد ذلك يمكنك استخدام هذا:
$layout = $this->layoutFactory->create();
$block = $layout->createBlock(....)
لا تنتمي إلى magento.stackexchange