Это должно быть просто:
MODEL_save_after
событие (или MODEL_save_before
если это является более соответствующим).getData()
по сравнению с getOrigData()
видеть, что изменяет пользователя, сделало.В customer_address модели, отредактированной через бэкенд, оба, сохраняют события, инициированы дважды. В первый раз customer_address_save_before
инициирован, сопровождается customer_address_save_after
.
В обоих случаях getOrigData()
и getData()
идентичны, кроме getData()
имеет новое значение updated_at, и store_id установил (действительно ли это - ошибка?). Так, модель еще не имеет отправленных данных от пользователя. События оба прежде вводят пользовательские данные или проверку, таким образом, это бесполезно.
customer_address_save_before
инициирован, сопровождается customer_address_save_after
во второй раз. На этот раз (в обоих случаях), getOrigData()
пусто, и getData()
теперь имеет все отправленные данные от пользователя. Таким образом, я не могу сравнить эти события также! Кажется, что это после проверки, сохранения, партии!
Почему процесс сохранения, кажется, происходит дважды? Magento v1.3.2.4.
В итоге я подключил customer_address_save_before и сравнил результаты с тем, что было в базе данных, вот так:
<?php
customer_address_save_before_listener ($event)
{
$address = $event->getCustomerAddress();
$database_address = Mage::getModel('customer/address')->load($address->getId());
}
?>
И сравнение результатов getData () от двух . Я обнаружил три ошибки: