Как внедрить фабричную зависимость продукта в плагин? - PullRequest
0 голосов
/ 06 февраля 2019

Я новый пользователь Magento 2 и пытаюсь разработать плагин, но я застрял в этой проблеме в течение последних 2 дней.Я пытаюсь программно добавить новый продукт в базу данных Magento 2.Для этого я понял, что мне нужно добавить зависимость фабрики продукта в мой пользовательский плагин, но я понятия не имею, как это сделать.Я вижу, что в большинстве плагинов есть файл di.xml, поэтому я предполагаю, что это расшифровывается как Dependency Injection, и мне нужно добавить соответствующий код здесь, но я не знаю, как это сделать.

Я пытаюсь использовать фабрику продуктов в Controller / Adminhtml / Index / Index.php, это моя структура каталогов:

My Dir Structure

Что мне нужнонаписать в di.xml, чтобы иметь возможность получить эту зависимость в конструкторе индекса?

Это мой код 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 голосов
/ 07 февраля 2019

Команда «Выполнить ниже»

php bin/magento setup:di:compile

Вам необходимо запускать эту команду каждый раз, когда новая зависимость вводится в любой класс через class или di.xml.

Открыть режим отладки, чтобы вы могли видетьошибка в любом случае.

php bin/magento setup:debug:mode developer
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...