Existem dois métodos que recuperam dados do modelo.
$model->getData();
$model->getOrigData();
Alguém pode explicar qual é a diferença entre eles? Qualquer ajuda será apreciada.
magento-1.7
model
Sukeshini
fonte
fonte
Respostas:
getOrigData()
retorna os dados no objeto no momento em que foi inicializado / preenchido.Após a inicialização do modelo, você pode atualizar esses dados e
getData()
retornar o que você possui atualmente nesse objeto.Dê uma olhada em
Varien_Object
(getOrigData
,setOrigData
),grep -R "origData" app/
para que você possa dar uma olhada no que é usado.No EE, é muito útil registrar o que mudou ( módulo Enterprise_Logging ).
fonte
Isso é mais fácil explicado por um exemplo:
Em poucas palavras, todo modelo (uma vez carregado) fará uma cópia dos dados originalmente carregados e os armazenará na
Model_Class::_origData
propriedade Isso possibilita otimizações para_beforeSave
chamadas, para que as consultas modifiquem apenas os dados alterados e não reescrevam os mesmos dados o tempo todo.Além disso, sempre que você chamar
setData()
um sinalizador, é definido que o modelo alterou os dados. Você pode verificar se um modelo alterou os dados ligando$model->hasDataChanges()
.fonte