zend验证多选框

sha*_*nth 6 php zend-framework zend-form zend-validate

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

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

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

在表单提交过程中,我收到以下错误,即使我在多选框中选择了一些选项:

在大海捞针中找不到阵列

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

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

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

Mar*_*cin 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');
Run Code Online (Sandbox Code Playgroud)