У меня проблема с получением значения пользовательской модели для обновления до NULL.
$model = Mage::getModel('custom/model')->load($id);
$model->setCustomValue(NULL);
$model->save();
Этот код не обновляет поле custom_value
в базе данных, и значение базы данных принимает значения NULL (ручная установка NULL в базе данных работает нормально).
РЕДАКТИРОВАТЬ:
Как Тим упоминает ниже, используя Zend_Db_Expr("NULL")
значение устанавливает нулевое значение, кто-нибудь может объяснить, почему это требуется в Magento, а не просто php NULL
?
просто попробуйте $ model-> setCustomValue ("");
—
Муфаддал
Тип поля таблицы -
—
Invoke
double
и я пробовал другие числовые типы, такие как, decimal
и, делая, $model->setCustomValue("");
устанавливает значение в0
Как насчет
—
user487772
$null = new Zend_Db_Expr("NULL");
?
@ Invoke, чтобы ответить на ваш ответ, если вы только установите его в «NULL», Magento будет только думать, что вы не хотите обновлять значение. Как предположил Тим, вам нужно указать, что это база данных "NULL", которую вы хотите установить.
—
Майерс
Спасибо @ Mayers-Dev, интересное поведение. Я предполагаю, что это было разработано как предложение выхода, если вам нужно отменить запланированное обновление при создании самого значения.
—
Вызов