我有一个数据库字段,定义为INT,允许NULL。提交给该字段的数据由select表单元素生成,其中值使用addMultiOption和addMultiOptions组合定义,例如。
$selectData = $dataModel->getPairs();
$updateForm->getElement('type_id')->addMultiOption(NULL, '- Not Selected -');
$updateForm->getElement('type_id')->addMultiOptions($selectData);
问题是我试图分配给“ - 未选择 - ”选项的NULL在某些时候被转换为空字符串而MySQL正在抛出错误,因为空字符串是一个不正确的整数值。
如何修改这个,使得NULL作为NULL到达MySQL插入?
此致
尼克
编辑:请参阅下面的Daniel Gadawski的回答。以下是最终结果。
$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 Integer字段。
答案 0 :(得分:1)
将Zend_Filter_Null添加到此字段:
$updateForm->getElement('type_id')->addFilter(new Zend_Filter_Null());
然后使用$ updateForm-> getValues()从此表单中检索数据,空字符串将替换为空值。