Magento2 Загрузка административного макета и шаблона на новой странице
-
28-09-2020 - |
Вопрос
Я не могу занять голову вокруг этого.
У меня есть этот контроллер
namespace Vendor\Gift\Controller\Adminhtml\Gift;
use Magento\Backend\App\Action\Context;
class Index extends \Magento\Backend\App\Action
{
/**
* @var \Magento\Framework\View\Result\PageFactory
*/
protected $resultPageFactory;
/**
* @param \Magento\Backend\App\Action\Context $context
*/
public function __construct(
Context $context
) {
parent::__construct($context);
}
public function execute()
{
$resultPage = $this->resultFactory->create(\Magento\Framework\Controller\ResultFactory::TYPE_PAGE);
return $resultPage;
}
}
.
Эта макет в поле зрения / adminhtml / layout / vendor_gift_index.xml
Редактировать:
Изменен макет для просмотра / adminhtml / layout / gift_gift_index.xml После этого ответа
https://magento.stackexchange.com/a/102800/36102
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<update handle="styles"/>
<body>
<referenceContainer name="content">
<block class="Vendor\Gift\Block\Adminhtml\Gift\Index" name="vendor.gift.index"
template="Vendor_Gift::gift/index.phtml" />
</referenceContainer>
</body>
</page>
.
и файл шаблона в:
view/adminhtml/templates/gift/index.phtml
.
и блок
.
Пространство имен \ Gift \ Block \ adminhtml \ pired;
class Index extends \Magento\Backend\Block\Template
{
protected $_template = 'gift/index.phtml';
public function __construct(
\Magento\Backend\Block\Template\Context $context
) {
parent::__construct($context);
}
protected function _toHtml() {
return $this->_template;
}
}
.
Почему мой вывод на странице просто показывает:
Vendor_Gift::gift/index.phtml
.
вместо HTML из шаблона.Действительно застрял на этом и так близко ... кто-нибудь поможет, пожалуйста,
Решение
Ваше имя файла должно быть изменено, как это:
от
vendor_gift_index.xml
gift_gift_index.xml
Другие советы
https://magento.stackexchange.com/a/102800/36102
в сочетании с удалением
protected function _toHtml() {
return $this->_template;
}
.
Я понятия не имею, почему это сработало, но на самом деле он проходит переменные из блока к шаблону и анализирует содержимое HTML в шаблоне, что является потрясающе :)