我是 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);
它,它现在工作正常。也许它会帮助某人。谢谢