Zend framework2 zf2 MultiCheckbox错误:在haystack中找不到输入
我正在使用Zend framework2 zf2 MultiCheckbox错误:在haystack中找不到输入,zend-framework2,Zend Framework2,我正在使用Zend\Form和以下代码显示一个动态复选框: $this->添加(数组)( 'type'=>'Zend\Form\Element\MultiCheckbox', 'name'=>'user\u group\u id', '属性'=>数组( 'id'=>'user\u group\u id', “选项”=>$tagData, ), )); 这个很好用。但是当我在$tagData中有加密值时,表单会产生以下错误: 在干草堆中找不到输入 我已经尝试了'disable\u inar
Zend\Form
和以下代码显示一个动态复选框:
$this->添加(数组)(
'type'=>'Zend\Form\Element\MultiCheckbox',
'name'=>'user\u group\u id',
'属性'=>数组(
'id'=>'user\u group\u id',
“选项”=>$tagData,
),
));
这个很好用。但是当我在$tagData
中有加密值时,表单会产生以下错误:
在干草堆中找不到输入
我已经尝试了'disable\u inaray\u validator'=>false
和'inarayvalidator'=>false,
但都没有起作用
它们使用Select
元素。如何为多复选框
实现同样的功能
$this->getElement('user_group_id')->clearValidators();
删除附加到用户组id元素的所有验证器
基本上,为什么在字段有效之前要加密??只有在验证所有字段后,才能对表单值执行任何操作。这里有两种方法 1) 禁用特定字段上的验证程序(如果ZF2允许禁用其验证程序)。现在很少有验证程序在禁用后删除/隐藏Haystack错误。但你仍然无法得到表单验证 2) 发布数据后,您可能需要将值重新填充/重置值到字段中。问题是ZF2表单假定值应该在大草堆中。为此,您可以执行以下操作
$form->get('user_group_id')->setAttribute('option',$Request->getPost('WhateverYouAreGettingFromPostForThisCheckBox'));
在转储之后,您形成复选框元素,并检查您想要的值、选项或w/e是否设置在那里。我有这个代码,它似乎适合我。表单->isValid不会将我标记为无效表单。 请注意,该类型等于“多复选框”
// Where do you get most of your client
$this->add(array(
'name' => Lead::GetClients1Mapping,
'attributes' => array('class' => ''),
'type' => 'multi-checkbox',
'options' => array(
'label' => 'Where do you get most of your clients?',
'value_options' => array(
'0' => 'Word of Mouth',
'1' => 'Referrals',
'2' => 'Yellow Pages',
'3' => 'Print Newspapers',
'4' => 'TV / Radios',
'5' => 'Google / Yahoo/ Bing',
'6' => 'Social Media / Facebook / Twitter',
'7' => 'Others'
),),
)); }'
请确保您正在使用multicheckbox帮助程序呈现视图中的复选框。尝试以下操作:
$this->add(array(
'name' => 'user_group_id',
'type' => 'text',
'options' => array(
'disable_inarray_validator' => true,
'attributes' => array(
'id' => 'user_id',
'required' => true )));
我们应该在发布表单后在控制器上使用此选项吗?逻辑上,发布表单后,但我不知道您的场景。因为草垛是在形状匹配之后匹配的posted@noobie-好吧,我已经尝试了$form->getElement('user_tag_id')->clearValidators();。错误“调用未定义的方法User\Form\RegisterStepThree::getElement()”我尝试了setattribute。它不起作用(.我还尝试了其他答案,它为disable Validation提供了未定义的错误您在setAttribute中传递的post数据正在接收数组?