1. 程式人生 > >Magento中getData和getOrigData的區別

Magento中getData和getOrigData的區別

先舉個例子:

$product = Mage::getModel('catalog/product')->load(any product id);
$product->getData('something'); // returns "foo"
$product->setData('something', 'bar');
$product->getData('something');     // returns "bar"
$product->getOrigData('something'); // returns "foo"
  • 1
  • 2
  • 3
  • 4
  • 5

每個模型(一旦載入)將複製原始載入的資料並將其儲存在

Model_Class::_origData
  • 1

屬性中。這使得可以對_beforeSave呼叫進行優化,以便查詢只修改已更改的資料,而不是始終重寫相同的資料。

而且,任何時候你呼叫setData()一個標誌都被設定為模型已經改變了資料。您可以通過呼叫來檢查模型是否改變了資料$model->hasDataChanges()。

getOrigData()物件的方法返回未改變的資料,並按save_before事件呼叫。

getData()物件的方法返回更改後的資料,並按save_after事件呼叫。