Обратный вызов событий после редактирования категории

Привет, как я могу вызвать наблюдателя после того, как пункт категории был отредактирован? В основном у меня есть наблюдатель, который перечисляет все категории в каждом событии, такие как сохранение новой категории, удаление категории, перемещение позиции категории и редактирование категории.

Но проблема в том, что при редактировании категории она извлекает последнее содержимое категории. Допустим, текущее имя категории - " Тест", и я изменяю его на " Тест 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>
Другие вопросы по тегам