Обратный вызов событий после редактирования категории
Привет, как я могу вызвать наблюдателя после того, как пункт категории был отредактирован? В основном у меня есть наблюдатель, который перечисляет все категории в каждом событии, такие как сохранение новой категории, удаление категории, перемещение позиции категории и редактирование категории.
Но проблема в том, что при редактировании категории она извлекает последнее содержимое категории. Допустим, текущее имя категории - " Тест", и я изменяю его на " Тест 101" при сохранении содержимого, в котором создается сгенерированный файл, содержащий содержимое " Тест", которое должно быть " Тест 101". Ниже приведен мой events.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="category_prepare_ajax_response">
<observer name="category-edit" instance="Module\FrontName\Observer\CategoryEditObserver" />
</event>
</config>
И это код, который извлекает подкатегории
public function getStoreCategories($storeManager)
{
// $categories = $category_helper->getStoreCategories();
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$categoryFactory = $objectManager->create('Magento\Catalog\Model\ResourceModel\Category\CollectionFactory');
$categories = $categoryFactory->create()
->addAttributeToSelect('*')
->addAttributeToFilter('level', array('eq' => 2))
->addIsActiveFilter()
->setStore($storeManager->getStore()); //categories from current store will be
}
Любая идея о том, как восстановить недавно отредактированные категории? Я думал о редактировании событий обратного вызова или что-то
1 ответ
Хорошо, я получил ответ. Для тех, кто ищет то же решение, что я сделал вместо того, чтобы использовать category_prepare_ajax_response
я использовал catalog_category_save_after
это будет вызвано после того, как сохранение выполнено, таким образом, вы сможете получить последний сохраненный контент. Мой events.xml выглядит так
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="catalog_category_save_after">
<observer name="category-edit" instance="TCM\HeaderMenu\Observer\CategoryEditObserver" />
</event>
</config>