Mam problem z uzyskaniem wartości modelu niestandardowego do aktualizacji na NULL.
$model = Mage::getModel('custom/model')->load($id);
$model->setCustomValue(NULL);
$model->save();
Ten kod nie aktualizuje pola custom_value
w bazie danych, a wartość bazy danych przyjmuje wartości NULL (ręczne ustawienie NULL w bazie danych działa dobrze).
EDYCJA:
Jak Tim poniżej wspomina użycie Zend_Db_Expr("NULL")
ustawia wartość na null, czy ktoś mógłby wyjaśnić, dlaczego jest to wymagane w Magento, a nie tylko php NULL
?
magento-1.7
magento-1.8
Odwołać się
źródło
źródło
double
i próbowałem innych typów liczbowych, takich jakdecimal
i robi,$model->setCustomValue("");
ustawia wartość na0
$null = new Zend_Db_Expr("NULL");
?Odpowiedzi:
Jest to, jak często, problem
isset()
kontraarray_key_exists()
, kiedy widzę to poprawnie.Nie próbowałem tego, ale z odczytu kodu powiedziałbym, że wartość jest sprawdzana tutaj:
a ponieważ
isset
zwraca wartość false dla zestawu kluczy tablicy, co oznaczaNULL
, że twoja wartość jest zastępowana.źródło