2011-06-22 39 views
1

如何將表單字段設置爲從控制器無效?Zend表格字段設置驗證無效

實施例:

$form->getElement('name')->set.... Validator to FALSE 

或類似的東西???代碼

部分:

if(....){ 
    $form->getSubForm('sub_form_name')->getElement('element_name')->addError('some error message'); 
    } 


    if($form->isValid($this->getRequest()->getPost())) { 
//Form is going to be valid and execute this statment 
    } 

我嘗試過用:markAsError()和hasError();但你的元素上不工作:(

+0

爲什麼你設置控制器無效提交?表單上有驗證器用於! – JellyBelly

+0

如果($ form-> isValid(null)){//表單將會定義失敗,如果它有任何驗證器...} – max4ever

+2

markAsError()應該工作。你確定你的if(....)正在按預期執行嗎? – Marcin

回答

2

如果你使用任何addError的...()或SETERROR ...()應該設置驗證標誌爲無效,或使該文件說

Zend_Form_Element.addError(字符串$消息)

添加一條錯誤消息,並且標記元素作爲驗證失敗

+0

好的,但是我爲這個元素添加了錯誤,但是之後我有'$ form-> isValid()'驗證並且添加了錯誤的元素仍然有效?哪裏不對? – Faraona

+0

發佈一個提示的版式 – max4ever

+0

發佈驗證信息,請發表中文的文章。 – Faraona

1

痘痘POGramation。:) 不是最好的方式,但效果還算不錯。

  $vazio = false; 
     if(is_array($nomes)){ 
     $vazio = true; 
       $form->addError("NomeIsArray"); 
     } 

     if(!$vazio && $form->isValid($post)){ 

      } 
+0

實際上使它在我們首選的工作目錄下工作,我們應該檢查$ vazio作爲第二個,讓 - > isValid這樣做的工作。 'if(form-> isValid($ post)&&!$ vazio)'它很髒,但它似乎是我現在唯一的選擇。 +1提示。 – jkulak