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