如何在插件中注入产品工厂依赖性?

时间:2019-02-06 13:27:34

标签: magento magento2

我是Magento 2的新用户,并且我正在尝试开发插件,但是iv在过去2天一直停留在此问题上。我正在尝试以编程方式将新产品添加到Magento 2数据库。为此,我发现我需要将产品工厂依赖项注入到我的自定义插件中,但是我不知道如何执行此操作。我看到大多数插件中都有一个di.xml文件,所以我猜这代表依赖注入,我需要在此处添加相关代码,但不知道如何执行此操作。

我正在尝试使用Controller / Adminhtml / Index / Index.php中的产品工厂,这是我的目录结构:

My Dir Structure

我需要在di.xml中编写什么才能在Index的构造函数中获得此依赖关系?

这是我的Index.php代码:

        <?php

        namespace Sunoptic\Koppeling\Controller\Adminhtml\Index;

        use Magento\Framework\Controller\ResultFactory;

        class Index extends \Magento\Backend\App\Action
        {
            private $_productFactory;
            private $_productRepository;

            public function __construct(\Magento\Backend\App\Action\Context $context, \Magento\Catalog\Api\Data\ProductInterfaceFactory $productFactory)
            {
                parent::__construct($context);
                $this->_productFactory = $productFactory;
            }

            public function execute()
            {
                /** @var \Magento\Framework\Controller\Result\Raw $result */
                $result = $this->resultFactory->create(ResultFactory::TYPE_RAW);
                $string = "";

                $result->setContents($string);
                return $result;
            }
        }

这可能由于依赖性问题而返回错误500。

我预计会出现此错误,但不知道如何实际添加这种依赖性。

1 个答案:

答案 0 :(得分:0)

运行以下命令

php bin/magento setup:di:compile

每次通过class或di.xml向任何类中注入新的依赖项时,都需要运行此命令。

打开调试模式,以便在任何情况下都可以看到错误。

php bin/magento setup:debug:mode developer