Hay dos métodos que recuperan datos del modelo.
$model->getData();
$model->getOrigData();
¿Alguien puede explicar cuál es la diferencia entre ellos? Cualquier ayuda será apreciada.
magento-1.7
model
Sukeshini
fuente
fuente
Respuestas:
getOrigData()
devuelve los datos en el objeto en el momento en que se inicializó / rellenó.Después de inicializar el modelo, puede actualizar esos datos y
getData()
devolverá lo que tiene actualmente en ese objeto.Eche un vistazo a
Varien_Object
(getOrigData
,setOrigData
),grep -R "origData" app/
para que pueda echar un vistazo a lo que se usa.En EE, es muy útil registrar el módulo que ha cambiado ( Enterprise_Logging ).
fuente
Esto se explica más fácilmente con un ejemplo:
En pocas palabras, cada modelo (una vez cargado) hará una copia de los datos cargados originalmente y los almacenará en la
Model_Class::_origData
propiedad. Esto permite realizar optimizaciones para las_beforeSave
llamadas, de modo que las consultas solo modifiquen los datos modificados y no reescriban los mismos datos todo el tiempo.Además, cada vez que llame a
setData()
un indicador, se establece que el modelo ha cambiado los datos. Puede verificar si un modelo ha cambiado los datos llamando$model->hasDataChanges()
.fuente