Я пытался сделать что-то, что кажется простым:
- перехватить событие 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.
Я что-то упустил?