Zend:定义带有NULL值的select选项的问题,用于提交到INT MySQL字段

时间:2014-07-09 12:00:45

标签: zend-framework

我有一个数据库字段,定义为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字段。

1 个答案:

答案 0 :(得分:1)

将Zend_Filter_Null添加到此字段:

$updateForm->getElement('type_id')->addFilter(new Zend_Filter_Null());

然后使用$ updateForm-> getValues()从此表单中检索数据,空字符串将替换为空值。