Я создаю 2 модуля бэкенд Magento и когда я указываю в макете файл пользовательский блок, он будет показывать пустую страницу с этим добавлением к system.logMagento 2 adminhtml - пользовательский блок дает пустую страницу
[2016-10-19 07:35:35] main.INFO: файл кэша с объединенной компоновкой: LAYOUT_adminhtml_STORE1_32fdcd7fcff058e6f791ea5b6050bd6b5 и обрабатывает по умолчанию, widget_selectwidget_index: исправьте данные XML и повторите попытку. [] [] [2016-10-19 07:35:35] main.INFO: файл кэша с объединенным макетом: LAYOUT_adminhtml_STORE1_3a2e4822a98337283e39f7b60acf85ec9 и обрабатывается пустым: исправьте данные XML и повторите попытку. [] [] [2016-10-19 07:35:35] main.CRITICAL: Неработающая ссылка: элемент 'logo' не может быть добавлен как дочерний элемент в 'header', потому что последний не существует [] [] [ 2016-10-19 07:35:35] main.CRITICAL: Неисправная ссылка: элемент 'global.search' не может быть добавлен как дочерний элемент в 'header', потому что последний не существует [] [] [2016-10 -19 07:35:35] main.CRITICAL: Неисправная ссылка: элемент «пользователя» не может быть добавлен как дочерний элемент в «заголовок», поскольку последний не существует [] []
... . и т. д. и т. д. и т. д. и т. д.
[2016-10-19 07:35:35] main.CRITICAL: Неисправная ссылка: 'header.inner.right' пытается переупорядочить себя в направлении 'header.inner .left ', но их родитель s разные: «заголовок» и «» соответственно. [] [] [2016-10-19 07:35:35] main.CRITICAL: Неисправная ссылка: «global.search» пытается переупорядочить себя в направлении «messages.messages», но их родители разные: «header.inner .right 'и' 'соответственно. [] [] [2016-10-19 07:35:35] main.INFO: файл кэша с объединенным макетом: LAYOUT_adminhtml_STORE1_36f1b068ec7ccf4878f9284dd1137afd1 и обрабатывает catalog_product_prices: исправьте данные XML и повторите попытку. [] []
Если я указываю мой блок класс как класс = «Magento \ Backend \ Block \ Template», то он будет показывать страницу с нужным шаблоном, который заставляет меня думать, что нет никаких проблем с шаблона или остальной части модуля.
Вот блок (приложение/код/Vendor/Widget/Block/Adminhtml/SelectWidgetBlock.php):
namespace Vendor\Widget\Block\Adminhtml;
use Magento\Backend\Block\Template;
class SelectWidgetBlock extends Template
{
public function __construct(Template\Context $context, array $data = [])
{
parent::__construct($context, $data);
}
public function greet()
{
return 'Hello world';
}
}
Это файл макета (приложение/код/Vendor/Widget/вид/adminhtml /layout/widget_selectwidget_index.xml):
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd" layout="empty">
<head>
<title>
Widget
</title>
</head>
<body>
<referenceContainer name="content">
<block class="Vendor\Widget\Block\Adminhtml\SelectWidgetBlock" name="vendor_widget.select" template="Vendor_Widget::selectwidget.phtml"/>
</referenceContainer>
</body>
Теперь PHTML (приложение/код/Vendor/Widget/просмотр/adminhtml/шаблоны/selectwidget.phtml):
<p>Here is the phtml file</p>
<?php echo $this->greet() ?>
Вот контроллер только в случае (приложение/код/Vendor/Widget/Controller/Adminhtml/SelectWidget/index.php):
namespace Vendor\Widget\Controller\Adminhtml\SelectWidget;
class Index extends \Magento\Backend\App\Action
{
protected $resultPageFactory;
public function __construct(
\Magento\Backend\App\Action\Context $context,
\Magento\Framework\View\Result\PageFactory $resultPageFactory
) {
parent::__construct($context);
$this->resultPageFactory = $resultPageFactory;
}
public function execute()
{
return $resultPage = $this->resultPageFactory->create();
}
}
Если у вас есть какие-либо идеи, пожалуйста!