Пользовательский контроллер: Аргумент 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;
}
}
1 answers
Эта ошибка может возникнуть из-за использования имени с учетом регистра в контроллере или модуле. Обычно эту ошибку игнорируют без компиляции кода. Этот тип ошибок возникает только после компиляции. Похоже, что в вашем коде:
shop/app/code/vendor/module/Controller/Cart/index.php
Вы использовали i вместо I.