Aja*_*jay 3 php zend-framework2
我是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,
));
}
Run Code Online (Sandbox Code Playgroud)
在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);
Run Code Online (Sandbox Code Playgroud)
在我的视图中,我这样称呼:
语言
<?php echo formSelect($form->get(‘language’)->setValueOptions($language)); ?>
Run Code Online (Sandbox Code Playgroud)
现在当我提交时没有选择下拉工作正常的价值..
..但如果我选择一些语言并提交,我会收到此错误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,
)
));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4888 次 |
| 最近记录: |