我有一个数据库字段定义为INT,允许NULL。提交给该字段的数据是由一个select表单元素生成的,该元素的值是使用addMultiOption和addMultiOptions组合定义的。
$selectData = $dataModel->getPairs();
$updateForm->getElement('type_id')->addMultiOption(NULL, '- Not Selected -');
$updateForm->getElement('type_id')->addMultiOptions($selectData);问题是,我试图将NULL赋值给"- incorrect“选项在某个点被转换为空字符串,而MySQL抛出了一个错误,因为空字符串是一个不正确的整数值。
我如何修改它,使NULL作为NULL到达MySQL插入?
致以敬意,
尼克
编辑:见丹尼尔·加达夫斯基下面的回答。以下是最终结果。
$selectData = $dataModel->getPairs();
$updateForm->getElement('type_id')->addFilter(new Zend_Filter_Null());
$updateForm->getElement('type_id')->addMultiOption('', '- Not Selected -');
$updateForm->getElement('type_id')->addMultiOptions($selectData);这允许将值NULL写入允许为NULL的MySQL整数字段。
发布于 2014-07-09 12:58:28
将Zend_Filter_Null添加到此字段:
$updateForm->getElement('type_id')->addFilter(new Zend_Filter_Null());然后,只需使用$updateForm->getValue()从此表单检索数据,空字符串将被空值替换。
https://stackoverflow.com/questions/24653126
复制相似问题