我将尝试使用输入过滤器验证多选内容,但每次都会出现错误。错误信息是“notInArray”:“输入内容未在列表中找到”。(我使用了ajax,但这不重要)。为了更清楚,我将展示部分代码。
在控制器中:
在控制器中:
if ($request->isPost()) {
$post = $request->getPost();
$form = new \Settings\Form\AddUserForm($roles);//
$form->get('positions')
->setOptions(
array('value_options'=> $post['positions']));
//.... 更多的代码...
当我输入 print_r($post['positions']); 时,我看到: array(0 => 118, 1 => 119)
在 ..../form/UserForm.php 中,我创建了一个乘法元素。
$this->add(array(
'type' => 'Zend\Form\Element\Select',
'attributes' => array(
'multiple' => 'multiple',
'id' => 'choosed_positions',
),
'required' => false,
'name' => 'positions',
));
在验证文件中,代码如下:
$inputFilter->add($factory->createInput(array(
'name' => 'positions',
'required' => false,
'validators' => array(
array(
'name' => 'InArray',
'options' => array(
'haystack' => array(118,119),
'messages' => array(
'notInArray' => 'Please select your position !'
),
),
),
),
每次看到这个错误的原因是什么,我该如何解决?