Magento наблюдатель идет по бесконечной петле - PullRequest
1 голос
/ 26 августа 2011

Заранее спасибо

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

<catalog_product_save_after>
                <observers>
                    <zaptech_save_product_data>
                        <type>singleton</type>
                        <class>upload/observer_product</class>
                        <method>saveTabData</method>
                    </zaptech_save_product_data>
                </observers>
            </catalog_product_save_after>

и код моего наблюдателя здесь, пожалуйста, проверьте

 public function saveTabData(Varien_Event_Observer $observer)
    { 

        $productModel=Mage::registry('current_product')                
                      ->setTestid('1')
                      ->setTestname('Jitendra')
                      ->save();

    }

проблема с этим кодом в том, что наблюдение идет в бесконечном цикле

пожалуйста, помогите

Еще раз спасибо,

Джитендра Дхоби.

Вот ответ на мой собственный вопрос, я заменил имя события из catalog_product_save_after на catalog_product_save_before ..

<catalog_product_save_before>
                <observers>
                    <zaptech_save_product_data>
                        <type>singleton</type>
                        <class>upload/observer_product</class>
                        <method>saveTabData</method>
                    </zaptech_save_product_data>
                </observers>
</catalog_product_save_before>

, а также удалите метод save () из файла наблюдателя, аналогичного приведенному ниже

public function saveTabData(Varien_Event_Observer $observer)
        { 

            $productModel=Mage::registry('current_product');                
            $productModel->setTestid('1');
            $productModel->setTestname('Jitendra');


        }

ура !!! ...

1 Ответ

0 голосов
/ 23 марта 2018

Вы можете использовать реестр, чтобы определить свое пользовательское сохранение продукта и предотвратить цикл.

public function saveTabData(Varien_Event_Observer $observer)
{
    if(Mage::registry('customUpdate')) return;
    Mage::register('customUpdate', true);

    $productModel=Mage::registry('current_product')
        ->setTestid('1')
        ->setTestname('Jitendra')
        ->save();

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...