Magento: 2 "Переданный аргумент должен быть экземпляром AuthorizerobinFactory"


У меня есть два модуля, такие как "authorizenetcim" и "authorizerobin".

В файле модели "authorizenetcim" я хочу получить коллекцию модуля "Authorizerobin".

Итак, мой конструктор для "authorizenetcim" (/model/Gateway.php):

public function __construct(
    \ParadoxLabs\TokenBase\Helper\Data $helper,
    \ParadoxLabs\TokenBase\Model\Gateway\Xml $xml,
    \ParadoxLabs\TokenBase\Model\Gateway\ResponseFactory $responseFactory,
    \Magento\Framework\HTTP\ZendClientFactory $httpClientFactory,
    \Magento\Framework\Module\Dir $moduleDir,
    \Magento\Framework\Registry $registry,
    /*Injecting other module's model factory */
    \Neo\Authorizerobin\Model\AuthorizerobinFactory $authorizeRobinFactory,
    /*Injection done*/
    array $data = []
) {
    $this->moduleDir = $moduleDir;
    $this->registry = $registry;
    $this->authorizeRobinFactory = $authorizeRobinFactory;

    parent::__construct(
        $helper,
        $xml,
        $responseFactory,
        $httpClientFactory,
        $data
    );
}

Но я получаю следующую ошибку для своего конструктора:

    <b>Fatal error</b>:  Uncaught TypeError: Argument 7 passed to ParadoxLabs\Authnetcim\Model\Gateway::__construct
() must be an instance of Neo\Authorizerobin\Model\AuthorizerobinFactory, array given, called in /var
/www/html/magento2/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php on line 93 and
 defined in /var/www/html/magento2/app/code/ParadoxLabs/Authnetcim/Model/Gateway.php:182

Stack trace:
#0 /var/www/html/magento2/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(93): ParadoxLabs
\Authnetcim\Model\Gateway-&gt;__construct(Object(ParadoxLabs\TokenBase\Helper\Data), Object(ParadoxLabs
\TokenBase\Model\Gateway\Xml), Object(ParadoxLabs\TokenBase\Model\Gateway\ResponseFactory), Object(Magento
\Framework\HTTP\ZendClientFactory), Object(Magento\Framework\Module\Dir), Object(Magento\Framework\Registry
), Array)


#1 /var/www/html/magento2/vendor/magento/framework/ObjectManager/Factory/Compiled.php(88): Magento\Framework
\ObjectManager\Factory\AbstractFactory-&gt;createObject('ParadoxLabs\\Aut...', Array)


#2 /var/ in <b>/var/www/html/magento2/app/code/ParadoxLabs/Authnetcim/Model/Gateway.php</b> on line 
<b>182</b><br />
{"messages":{"error":[{"code":500,"message":"Server internal error. See details in report api\/308753050106"
}]}}
Author: Siarhey Uchukhlebau, 2017-04-07

1 answers

Попробуйте удалить старые сгенерированные файлы с помощью команды rm -rf var/generation/* (rm -rf generated/* для Magento>=2.2) из корневого каталога magento, потому что magento предварительно генерирует все файлы классов с их конструкторами. Сгенерированные классы расширяют исходные классы и используются magento для вызова плагинов.

 10
Author: Siarhey Uchukhlebau, 2018-02-07 10:48:46