Пользовательский контроллер: Аргумент 1 должен быть экземпляром контекста, вместо этого задается Objectmanager


Создал модуль, который работал долгое время, однако после некоторых других изменений на сайте я получил эту ошибку:

" Исправимая ошибка: Аргумент 1, переданный поставщику\модулю\Контроллеру\Корзине\Индексу::__construct() должен быть экземпляром из Magento\Framework\Приложение\Действие\Контекст, экземпляр Magento\Framework\ObjectManager\ObjectManager задан, вызывается в /Applications/MAMP/htdocs/project/shop/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php в строке 93 и определен в /Applications/MAMP/htdocs/project/shop/app/code/vendor/module/Controller/Cart/index.php в режиме онлайн 14"

Удаление папок var/generation, var/di и var/cache решает проблему, однако она появляется снова после настройка:di:компиляция

Есть какие-нибудь мысли о возможных исправлениях?

Вот код контроллера:

<?php
namespace vendor\module\Controller\Cart;




class Index extends \Magento\Framework\App\Action\Action {

    /** @var  \Magento\Framework\View\Result\Page */
    protected $resultPageFactory;


    /**      * @param \Magento\Framework\App\Action\Context $context      */
    public function __construct(\Magento\Framework\App\Action\Context $context,
        \Magento\Framework\View\Result\PageFactory $resultPageFactory)     {
        $this->resultPageFactory = $resultPageFactory;
        parent::__construct($context);
    }

    /**
     * Blog Index, shows a list of recent blog posts.
     *
     * @return \Magento\Framework\View\Result\PageFactory
     */
    public function execute()
    {
      header('Content-Type:text/plain');
      header("Access-Control-Allow-Origin: *");
      $resultPage = $this->resultPageFactory->create();
      return $resultPage;
    }

}
Author: Yogesh Karodiya, 2017-05-23

1 answers

Эта ошибка может возникнуть из-за использования имени с учетом регистра в контроллере или модуле. Обычно эту ошибку игнорируют без компиляции кода. Этот тип ошибок возникает только после компиляции. Похоже, что в вашем коде:

shop/app/code/vendor/module/Controller/Cart/index.php

Вы использовали i вместо I.

 1
Author: Yogesh Karodiya, 2017-05-23 10:50:18