2014-02-14 39 views
0

我需要防止一些客戶更改他們的地址。 我發現系統事件'customer_address_save_(before | after)'。 是否有可能取消從自己的觀察員(基於某些客戶的條件)寫入數據庫?或者我可以通過重寫系統客戶類別(即beforeSave方法)來做到這一點? 總之,問題是如何防止自己模塊中的數據更改。Magento如何防止觀察者的數據變化

謝謝。

回答

1

你可以在你的觀察嘗試(事件 - customer_address_save_before):

/** @var $customerAddress Mage_Customer_Model_Address */ 
$customerAddress = $observer->getCustomerAddress(); 

$origData = $customerAddress->getOrigData(); 
$newData = $customerAddress->getData(); 

享受。

+0

尤金,謝謝你的回答(spasibo)。我檢查了customer_address_save_before事件下的代碼 - orig_data在這裏沒有定義:(但是我找到了解決方案:/ ** *可以在保存之前停止數據保存的標記 *可用於下一個序列:我們檢查_beforeSave中的數據,如果數據是 *無效的 - 我們可以將此標誌設置爲false價值和保存過程將停止 * * @var布爾 */ 保護$ _dataSaveAllowed = TRUE; – Dzurillo

+0

尼斯,謝謝你! – Eugene