Answers:
getOrigData()
返回对象在初始化/填充时的数据。
初始化模型后,您可以更新该数据,getData()
并将返回您当前在该对象中拥有的数据。
看一下Varien_Object
(getOrigData
,setOrigData
),grep -R "origData" app/
所以您可以看一下所使用的内容。
在EE中,记录更改内容(Enterprise_Logging)模块非常有用。
用一个例子最容易解释:
$product = Mage::getModel('catalog/product')->load(123);
$product->getData('something'); // returns "foo"
$product->setData('something', 'bar');
$product->getData('something'); // returns "bar"
$product->getOrigData('something'); // returns "foo"
简而言之,每个模型(一旦加载)都将复制原始加载的数据并将其存储在Model_Class::_origData
属性中。这样就可以对_beforeSave
调用进行优化,以便查询仅修改更改的数据,而不会一直重写相同的数据。
同样,任何时候调用setData()
标记都会设置模型已更改数据。您可以通过调用来检查模型是否更改了数据$model->hasDataChanges()
。