2014-10-06 41 views
2

在ZF1是可以標記的形式使用的代碼無效:Zend Framework 2:如何標記表單無效?

$form->fieldname->addError('error message'); 

我怎樣才能做到這一點在ZF2? 我試過

$form->get('elementName')->setMessages(array('error message')); 

但它不會使窗體無效。

+0

我認爲這將對你有很大幫助http://stackoverflow.com/questions/13476164/zend-framework-2-custom-validators-for-forms此鏈接http://www.ivangospodinow.com/simple-form-validator-for-zend-framework-2-forms/ – 2014-10-06 13:59:31

+0

不確定..但我認爲有$ form-> setValid(bool); – peterpeterson 2014-10-06 15:06:38

+0

@peterpeterson Form類沒有「setValid」方法。你在哪裏得到它? – 2015-07-17 12:12:16

回答

0

我不知道同樣的問題,我不知道如何使用默認的Zend 2形式也很容易。

我不知道爲什麼有必要隱藏手動窗體狀態操作並打破明顯的addError功能。

但可能是合適的做法是你用代理的方式是這樣的:

  1. 創建自己的形式基本類(可以更好地後寫):

    class BasicForm extends Form 
    { 
        protected _isValid = null; 
    
        public function isValid() 
        { 
         return isset($this->_isValid) ? $this->_isValid : parent::isValid(); 
        } 
    
        public function setValid($value) 
        { 
         $this->_isValid = isset($value) ? (bool)$value : null; 
         return $this; 
        } 
    
    } 
    
  2. 實例化從這種定製形式類別的實際形式默認Zend Form類別:

    class SomeYourForm extends BasicForm 
    ... 
    

因此,您可以通過覆蓋此屬性將此窗體有效狀態設置爲true或false。

可能對某人有幫助。