Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

always get The input was not found in the haystack in zf2 select element

I am new in zf2

I am always getting the error The input was not found in the haystack when I have select a language from a drop down. Here's my code:

In my controller

function singleAction(){
—
—-
—-
$language = array();
$languages = $this->getManageTable()->getLanguage();

foreach($languages as $lang){
$language[”] = ‘Select Language';
$language[$lang[‘id_language’]] = $lang[‘name’];
}
—
—-
—-
return new ViewModel(array(
‘form’ => $form,
‘language’ => $language,
));
}

Inside manageForm.php :

// Language Input
$language = new Element\Select(‘language’);
$language->setAttributes(array(
‘id’ => ‘language’,
‘class’ => ‘form-control’,
));
$this->add($language);

$language = new InputFilter\Input(‘language’);
$language->setRequired(false);
//$language->removeValidator(“NotEmpty”); // not working giving error
// not working giving error:
//$language->setAllowEmptysetRegisterInArrayValidator(false); 
//$language->setErrorMessage(‘Please select language’);
$inputFilter->add($language);

In my View I called like so:

Language

<?php echo formSelect($form->get(‘language’)->setValueOptions($language)); ?>

Now when I submit without selecting value from drop-down working fine..

..but if I select some language and submit, I get this error The input was not found in the haystack.

I checked my language data I am getting in post but if ($form->isValid()) {—-} gives me an error.

How can I resolve this, I checked lot of links but haven't found any solutions. Please help me. I don't want to validate this drop-down element.

like image 695
Ajay Avatar asked Sep 08 '25 15:09

Ajay


1 Answers

This works for me:

$this->add(
            array(
                'type'=> 'Zend\Form\Element\Select',
                'name' => 'language',
                'required' => true,
                'attributes' => array(
                    'class' => 'form-control',
                    'value' => 'en' ,
                ),
                'options' => array(
                    'disable_inarray_validator' => true,
                    )
            ));
like image 184
Oskar Avatar answered Sep 10 '25 05:09

Oskar