Вопрос

помогите мне найти событие magento2.В magento у нас есть событие catalog_product_after_save это событие в magento2-rc?

Это было полезно?

Решение

в Magento 2 Я также пытался просмотреть то же событие в моем пользовательском требовании модуля, но не может выяснить.

После создания журнала из файла root\lib\internal\Magento\Framework\Event\Manager.php и откройте панель администратора Создайте один продукт после того, как вы сможете увидеть событие GeneracodicTacode журналов, а также catalog_product_after_save

public function dispatch($eventName, array $data = [])
    {

       $this->logger->info($eventName);

        \Magento\Framework\Profiler::start('EVENT:' . $eventName, ['group' => 'EVENT', 'name' => $eventName]);
        foreach ($this->_eventConfig->getObservers($eventName) as $observerConfig) {
            $event = new \Magento\Framework\Event($data);
            $event->setName($eventName);

            $wrapper = new Observer();
            $wrapper->setData(array_merge(['event' => $event], $data));

            \Magento\Framework\Profiler::start('OBSERVER:' . $observerConfig['name']);
            $this->_invoker->dispatch($observerConfig, $wrapper);
            \Magento\Framework\Profiler::stop('OBSERVER:' . $observerConfig['name']);
        }
        \Magento\Framework\Profiler::stop('EVENT:' . $eventName);
    }
.

Крит product id файл в папке events.xml и вставьте следующий код

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/Event/etc/events.xsd">
    <event name="catalog_product_after_save">
        <observer name="custom_event" instance="Learning\Custom\Model\Observer" method="getProduct" />
    </event>   
</config>
.

и etc/adminhtml/ Написать ниже метод

public function getProduct(\Magento\Framework\Event\Observer $observer)
    {

        $product_id = $observer->getProduct()->getId();
        $this->logger->info($product_id );
    }
.

выше Magento 2.0.0rc изменил синтаксис наблюдателя на Observer.php, как показано ниже.

public function execute(\Magento\Framework\Event\Observer $observer)
    {
 $product_id = $observer->getProduct()->getId();
            $this->logger->info($product_id );
    }
.

Другие советы

В файле "lib/internal/Magento/Framework/Model/AbstractModel.php" вы можете найти метод "afterSave" и выполнить строку с $this->_eventManager->dispatch($this->_eventPrefix . '_save_after'....

"_eventPrefix " для модели продукта - "catalog_product", поэтому полное название события - "catalog_product_save_after".

Кроме того, вас может заинтересовать использование M2 "Перехватчиков/плагинов", вы можете найти много примеров в базе кода M2 (см. di.xml объявление узла "плагин")

Событие, которое вы ищете, является Controller_Action_Catalog_Product_save_entity_after

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top