Обратный вызов событий после редактирования категории - PullRequest
0 голосов
/ 11 февраля 2019

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

Но проблема заключается в том, что при редактировании категории ее извлекает последнее содержимое категории,Допустим, текущее имя категории - Test , и я изменяю его на Test 101 . При сохранении содержимого создается сгенерированный файл с содержимым Test , которое должноbe Test 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 Ответ

0 голосов
/ 14 февраля 2019

Хорошо, я получил ответ.Для тех, кто ищет то же решение, которое я использовал вместо 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>
...