2016-10-19 2 views
0

Я создаю 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(); 
    } 
} 

Если у вас есть какие-либо идеи, пожалуйста!

ответ

0

Я решил проблему, удалив layout="empty" из моего файла макета.