Каталог событий_product_after_save magento2-rc?
-
13-12-2019 - |
Вопрос
помогите мне найти событие 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