Próbuję potwierdzić wybór mnożenia za pomocą filtru wejściowego, ale za każdym razem, gdy widzę błąd. Błąd to "notInArray": "Dane wejściowe nie zostały znalezione w stogu siana". (Używam ajaxa, ale to się nie zgadza). Pokażę część mojego kodu, aby było bardziej zrozumiałe.Jak sprawdzić poprawność mnożenia wybierz przy użyciu Zend Framework 2
w Kontroler:
if ($request->isPost()) {
$post = $request->getPost();
$form = new \Settings\Form\AddUserForm($roles);//
$form->get('positions')
->setOptions(
array('value_options'=> $post['positions']));
//.... more code...
Kiedy kładę print_r ($ post [ 'pozycje']); Widać: tablica (0 => 118 1 => 119)
..../w postaci/UserForm.php utworzyć wielowarstwowej elementu
$this->add(array(
'type' => 'Zend\Form\Element\Select',
'attributes' => array(
'multiple' => 'multiple',
'id' => 'choosed_positions',
),
'required' => false,
'name' => 'positions',
));
oraz w pliku Walidacja kodu jest:
$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 !'
),
),
),
),
Co może być przyczyną za każdym razem, gdy widzisz ten błąd i jak mogę to naprawić?
Czy to się nie uda bez względu na liczbę wybranych opcji (zero, jeden lub dwa)? – dualmon
Co więcej, czy to się nie uda, jeśli nie zrobisz tego wielokrotnie? – dualmon
Co otrzymasz, jeśli var_dump ($ form-> get ("pozycje") -> getValueOptions()) – dualmon