我使用了很多嵌套的Fieldset,并且想知道是否可以为特定的字段集设置required = false,以便在其中没有错误时抛出错误(并保持我的表单验证) )?
例如,这是我的UserFieldset:
-> {User Fieldset}
-----> Name
-----> Email address
-----> [other user fields...]
-----> {Avatar Fieldset}
----------> File
----------> [other avatar fields...]
-----> {other fieldsets...}
在我的情况下,我希望有时强迫我的用户添加头像,有时不会..
当我想强制没有问题时,我的Avatar字段集中的输入文件会抛出错误并阻止验证过程。
但是当我希望我的用户只是注册并最终设置其头像时,我该怎么办呢?
感谢您的帮助。
答案 0 :(得分:0)
您可以使用setValidationGroup()
方法修改验证的元素。
Zend \ Form为底层的InputFilter的setValidationGroup()方法提供了一个代理方法,允许我们只对表单元素的子集执行[validation]
这可以在控制器内完成,也可以在新工厂内完成;例如:
// Module.php
public function getFormElementConfig()
{
return array(
'factories' => array(
'MyModule\Form\AvatarRegistrationFieldset' => function($fem) {
$fieldset = new Form\AvatarFieldset();
// Include the name of the elements you WANT to be validated
$fieldset->setValidationGroup('foo', 'file');
return $fieldset;
}
),
);
}