回答:
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()
ます。