Il existe deux méthodes qui récupèrent les données du modèle.
$model->getData();
$model->getOrigData();
Quelqu'un peut-il expliquer quelle est la différence entre eux? Toute aide serait appréciée.
magento-1.7
model
Sukeshini
la source
la source
Réponses:
getOrigData()
renvoie les données dans l'objet au moment où il a été initialisé / rempli.Une fois le modèle initialisé, vous pouvez mettre à jour ces données et
getData()
retourner ce que vous avez actuellement dans cet objet.Jetez un œil à
Varien_Object
(getOrigData
,setOrigData
),grep -R "origData" app/
afin que vous puissiez voir ce qui est utilisé.Dans EE, il est très utile de consigner le module modifié ( Enterprise_Logging ).
la source
Ceci est plus facilement expliqué par un exemple:
En un mot, chaque modèle (une fois chargé) fera une copie des données chargées à l'origine et les stockera dans la
Model_Class::_origData
propriété. Cela permet de faire des optimisations pour les_beforeSave
appels afin que les requêtes ne modifient que les données modifiées et ne réécrivent pas les mêmes données tout le temps.En outre, chaque fois que vous appelez
setData()
un indicateur, le modèle modifie les données. Vous pouvez vérifier si un modèle a modifié des données en appelant$model->hasDataChanges()
.la source