6

我在表单中使用 zend 验证,但无法验证表单中的多选框。

这是我在表单中的多选元素:

$days = new Zend_Form_Element_Select('day');
$days->setLabel('Days')
->addMultiOptions($total_days)
->setRequired(true)
->addValidator('NotEmpty')
->setAttrib('multiple', 'multiple');

即使我在多选框中选择了某个选项,我在提交表单时也收到以下错误:

在大海捞针中找不到数组

我在 Zend/Validate/InArray.php 中看到以下代码,它只能验证单个表单元素,但不能验证数组:

public function isValid($value)
{
$this->_setValue($value);
if (in_array($value, $this->_haystack, $this->_strict)) 
{
return true;
}
}

但是我该如何解决这个错误?

4

1 回答 1

11

要在表单中包含多选元素,您应该使用Zend_Form_Element_Multiselect,而不是 Zend_Form_Element_Select,例如:

$days = new Zend_Form_Element_Multiselect('day');
$days->setLabel('Days')
->addMultiOptions($total_days)
->setRequired(true)
->addValidator('NotEmpty');
于 2011-04-23T14:01:24.763 回答