use*_*230 2 zend-form zend-framework2
我想绕过Zend Framework 2中Select元素的烦人验证.我的要求是我有两个选择下拉框,我将值从左选择框传递到右选择框,最后当我单击提交按钮时,我从右侧选择框发布值.
所以基本上左边的选择框是为了向用户显示值,我的问题是在左侧选择框中没有选择任何值它会抛出此错误:
["selectAll"] => array(1) {
["isEmpty"] => string(36) "Value is required and can't be empty"
}
Run Code Online (Sandbox Code Playgroud)
我已经看到了一些来自Stackoverflow的旧帖子,这在Zend Framework 1中是可行的,就像可以禁用特定select元素的验证一样
例子:-
$selectAllElement->setRequired(false);
Run Code Online (Sandbox Code Playgroud)
要么
$selectAllElement->removeDecorator('Errors');
Run Code Online (Sandbox Code Playgroud)
这些方法在Zend Framework 2中是不可用的.如果某人有解决方案如何禁用特定选择元素的验证,请分享您的知识,对于进入Zend Framework 2的人来说将是非常有用的.
编辑:
在我的表格中 -
$select = new Element\Select('selectAllElement');
$select->setAttribute('title', 'Select a Value')
->setAttribute('id', 'id');
$options = array(
array(
//Fetching the values from database
),
);
$select->setAttribute('multiple', 'multiple')
->setAttribute('required', false)
->setValueOptions($options);
$this->add($select);
Run Code Online (Sandbox Code Playgroud)
根据Sam的请求,我提供了代码,我将如何将select元素添加到表单并设置属性.
注意:我没有使用任何FIELDSETS
为了澄清这个问题,setRequired()在任何Zend\Form\Element上使用-Method只声明是否required="(bool)"应该呈现HTML-Attribute .
如果要从验证中排除字段/元素,则需要在InputFilters设置中定义它 'required' => false