我一直在努力做一些事情,似乎應該是簡單的:在保存事件之前/之後查看Magento模型數據更改?
- 鉤MODEL_save_after事件(或MODEL_save_before如果這是更合適)
- 檢查的getData()VS 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正在使用中。
我錯過了什麼嗎?
什麼是你正在勾選的事件的名稱? – 2010-03-10 05:17:00
customer_address_save_after或customer_address_save_before。 有趣的是,兩種情況下模型中的數據是相同的! – KingJackaL 2010-03-10 21:08:34