[英]Zend 2 Form Fieldset optional validation
我正在使用大量嵌套的Fieldset,並且想知道是否可以為特定的fieldset設置required = false,以便在其中包含任何錯誤時不拋出錯誤(並保持我的表單驗證)?
例如,這是我的UserFieldset:
-> {User Fieldset}
-----> Name
-----> Email address
-----> [other user fields...]
-----> {Avatar Fieldset}
----------> File
----------> [other avatar fields...]
-----> {other fieldsets...}
在我的情況下,我有時要強迫用戶添加頭像,有時則不然。
當我想強制執行沒有問題時,我的Avatar字段集中的輸入文件會引發錯誤並阻止驗證過程。
但是,當我希望用戶簡單地注冊並最終設置其頭像時,該怎么辦?
謝謝您的幫助。
您可以使用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;
}
),
);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.