Magento 2 - страница неопределенных свойств на странице администратора


Я создал маршрут и пункт меню администратора, связанный с этим маршрутом, но при попытке доступа к нему в браузере появляется сообщение об ошибке:

1 exception(s):
Exception #0 (Exception): Notice: Undefined property: Namespace\Mymodule\Controller\Adminhtml\Griglia\Index\Interceptor::$_resultPage in /Applications/MAMP/htdocs/magento2/app/code/Namespace/Mymodule/Controller/Adminhtml/Griglia/Index.php on line 34 ...... ............(MORE ERROR TEXT IS HERE) ....

Я могу видеть содержимое страницы на этом маршруте, если я сокращу обработку, выведя что-то в методе выполнения и возврата;, но я хочу, чтобы шаблон также загружался, используя макет и шаблон для этой страницы администратора.

Код в Controller/Adminhtmk/Griglia/Index.php является:

<?php

namespace Namespace\Mymodule\Controller\Adminhtml\Griglia;

class Index extends \Magento\Backend\App\Action
{
    protected $resultPageFactory = false;
    public function __construct(
        \Magento\Backend\App\Action\Context $context,
        \Magento\Framework\View\Result\PageFactory $resultPageFactory
    ) {
        parent::__construct($context);
        $this->resultPageFactory = $resultPageFactory;
    }

    public function execute()
    {

        //Call page factory to render layout and page content
        $this->_setPageData();
        return $this->getResultPage();
    }

    /*
     * Check permission via ACL resource
     */
    protected function _isAllowed()
    {
        return $this->_authorization->isAllowed('Namespace_Mymodule::griglia');
    }

    public function getResultPage()
    {
        if (is_null($this->_resultPage)) {
            $this->_resultPage = $this->_resultPageFactory->create();
        }
        return $this->_resultPage;
    }

    protected function _setPageData()
    {
        $resultPage = $this->getResultPage();
        $resultPage->setActiveMenu('Namespace_Mymodule::griglia');
        $resultPage->getConfig()->getTitle()->prepend((__('Posts')));


        return $this;
    }


}
Author: Marius, 2017-03-28

1 answers

Добавьте эту строку над конструктором:

protected $_resultPage;

И в методе getResultPage замените это

$this->_resultPage = $this->_resultPageFactory->create();

С помощью этого

$this->_resultPage = $this->resultPageFactory->create();
 4
Author: Marius, 2017-03-28 12:55:30