2013-06-11 50 views
4

是否有從輸入中分離驗證器的方法?例如ZF2從ValidatorChain中刪除驗證器

$input->getValidatorChain() 
    ->attach('email_address') 
    ->attach('no_record_exists'); 

if($isExistingUser == true) { 
    $input->getValidatorChain() 
     ->remove('no_record_exists'); 
} 
+1

你確實需要刪除驗證器嗎?該表單有一個'setValidationGroup'方法,可以用來忽略對特定字段的驗證,例如 - > http://stackoverflow.com/questions/15300105/how-can-i-pass-some-data-to- a-validationfilter-zend-2/15313588#15313588 – Crisp

+0

是的,這是一個可能的選擇,但我仍然希望輸入被驗證。在我的例子中,我仍然想檢查它是否是一個有效的電子郵件地址 – gawpertron

+0

好的,這就是我問的原因。它確實提出了另一個問題:)我猜你不希望在電子郵件沒有改變時檢查dups,但如果它沒有改變,並且它是有效的,它是否真的需要再次驗證? : -/ – Crisp

回答

2
$form->getInputFilter()->remove('no_record_exists'); 

形式存在一個Zend \表格\ Form對象

2

要禁用例如需要驗證,你可以這樣做:

$ form-> getInputFilter() - > get('form-field') - > setRequired(false);

+0

我不得不添加實體,就像這樣:$ form-> getInputFilter() - > get ( '預約') - >獲取( '街') - > setRequired(FALSE); – cwhisperer