簡體   English   中英

Zend 2 Form Fieldset可選驗證

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM