我有一个控制器动作,我想将产品存储库注入其中
namespace Nosto\Tagging\Controller\Export;
use Magento\Catalog\Api\ProductRepositoryInterface;
use Magento\Store\Model\StoreManagerInterface;
use Magento\Backend\App\Action;
use Magento\Framework\App\Action\Context;
class Test extends Action
{
private $_productRepository;
public function __construct(
Context $context,
StoreManagerInterface $storeManager,
ProductRepositoryInterface $productRepository
) {
parent::__construct($context);
$this->_storeManager = $storeManager;
$this->_productRepository = $productRepository;
}
无论我以什么顺序放置构造函数参数,Magento的依赖项注入总是为该productRepository
参数注入一个无效的类,从而导致PHP抛出和参数错误。该storeManager
GETD注射就好了。清除缓存没有帮助。
这是引发的异常:
Recoverable Error: Argument 3 passed to Nosto\Tagging\Controller\Export\Test::__construct() must implement interface Magento\Catalog\Api\ProductRepositoryInterface, instance of Nosto\Tagging\Helper\Account given.
错误消息中的类名和参数位置会更改,但错误定义始终相同。ProductRepositoryInterface
从构造函数中删除,可使一切再次正常。
回复:“ Magento的依赖项注入总是为productRepository参数注入一个无效的类”包括确切的错误将帮助其他人诊断问题。
—
艾伦·风暴
您清除了var / generation吗?
—
马吕斯
@AlanStorm。对于那个很抱歉。我已经编辑了问题。
—
Mridang Agarwalla'2