Ich versuche, eine Multiplikation mit Eingangsfilter zu validieren, aber jedes Mal, wenn ich einen Fehler sehe. Der Fehler ist "notInArray": "Die Eingabe wurde nicht im Heuhaufen gefunden." (Ich benutze Ajax, aber es kommt nicht vor). Ich werde einen Teil meines Codes zeigen, um klarer zu sein.Wie validate Multiply wählen Sie mit Zend Framework 2
in Controller:
if ($request->isPost()) {
$post = $request->getPost();
$form = new \Settings\Form\AddUserForm($roles);//
$form->get('positions')
->setOptions(
array('value_options'=> $post['positions']));
//.... more code...
Als ich setzen print_r ($ post [ 'Positionen']); Ich sehe: array (0 => 118, 1 => 119)
in ..../form/UserForm.php I das Multiplizier-Element des Code
$this->add(array(
'type' => 'Zend\Form\Element\Select',
'attributes' => array(
'multiple' => 'multiple',
'id' => 'choosed_positions',
),
'required' => false,
'name' => 'positions',
));
und in der Validierungsdatei erstellen ist:
$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 !'
),
),
),
),
Was kann der Grund sein, jedes Mal, um diesen Fehler zu sehen, und wie ich es beheben kann?
Schlägt es fehl, egal wie viele Optionen Sie wählen (null, eins oder zwei)? – dualmon
Scheitert es auch, wenn Sie es nicht mehrfach machen? – dualmon
Was bekommen Sie, wenn Sie var_dump ($ form-> get ('Positionen') -> getValueOptions()) – dualmon