Always get Entry not found in haystack in picker zf2

I am new to zf2

I always get an error The input was not found in the haystack

when I select a language from the dropdown. 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 named it like this:

Tongue

<?php echo formSelect($form->get(ā€˜languageā€™)->setValueOptions($language)); ?>

      

Now when I submit without selecting a value from the dropdown it works fine.

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

.

I checked my language data, I get a message but if ($form->isValid()) {ā€”-}

gives me an error.

How can I solve this, I have checked many links but did not find any solutions. Please help me. I don't want to check this dropdown.

+3


source to share


2 answers


oho Thank God

I got the solution

Inside manageForm.php:



    $language = new Element\Select('language');
    $language->setAttributes(array(
            'id' => 'language',
            'class' => 'form-control',
        ));
    $language->setDisableInArrayValidator(true);
    $this->add($language);
    $language = new InputFilter\Input(ā€˜languageā€™);
    $language->setRequired(false);
     $language->setErrorMessage(ā€˜Please select languageā€™);
   $inputFilter->add($language);

      

That he is now working fine. Maybe this will help someone. Thanks you

+2


source


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,
                    )
            ));

      

+3


source







All Articles