Tengo un problema para obtener el valor de un modelo personalizado para actualizar a NULL.
$model = Mage::getModel('custom/model')->load($id);
$model->setCustomValue(NULL);
$model->save();
Este código no actualiza el campo custom_value
en la base de datos, y el valor de la base de datos acepta valores NULL (configurar NULL manualmente en la base de datos funciona bien).
EDITAR:
Como Tim menciona a continuación, el uso Zend_Db_Expr("NULL")
establece el valor en nulo, ¿alguien podría explicar por qué esto se requiere en Magento y no simplemente un php NULL
?
magento-1.7
magento-1.8
Invocar
fuente
fuente
double
y he probado otros tipos numéricos comodecimal
y haciendo$model->setCustomValue("");
establece el valor en0
$null = new Zend_Db_Expr("NULL");
?Respuestas:
Esto es, como a menudo un problema
isset()
vsarray_key_exists()
, cuando veo esto correctamente.No lo intenté, pero desde la lectura del código diría que el valor se verifica aquí:
y debido a que
isset
devuelve false en una clave de matriz establecida que esNULL
, su valor se sobrescribe.fuente