始终获取 在 zf2 选择元素的大海捞针中找不到输入


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

我是 zf2 的新手

当我从下拉列表中选择语言时,我总是The input was not found in the haystack收到错误。这是我的代码:

在我的控制器中

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

内部管理表单.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);

在我看来,我是这样称呼的:

语言

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

现在,当我提交时没有从下拉列表中选择值时工作正常..

..但是如果我选择某种语言并提交,我会The input was not found in the haystack收到此错误。

我检查了我正在发布的语言数据,但如果($form->isValid()) {—-}给了我一个错误。

该如何解决这个问题,我检查了很多链接,但没有找到任何解决方案。请帮助我。我不想验证此下拉元素。

这对

我有用:

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

感谢上帝,

我得到了解决方案

内部管理表单.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);

,它现在工作正常。也许它会帮助某人。谢谢