2012-05-20 78 views
1

我使用驗證器來測試登錄是否存在於數據庫中,並且它工作正常,但是在爲Zend表單添加裝飾器之後,驗證器錯誤消息不再顯示。Zend框架中的驗證器?

代碼:

$this->setName("companyadd"); 

     $comp = new Zend_Validate_Db_NoRecordExists('company', 'name'); 
     $comp->setMessage("This company exists!!!!"); 

     $name = new Zend_Form_Element_Text('name'); 

     $name->addValidator($comp); 
     $name->setAttrib('size', '45'); 
     $name->setLabel('Company Name') 
       ->setAttrib('class', 'companyinputs'); 
     $submit = new Zend_Form_Element_Submit('submit'); 
     $this->addElements(array($name, $submit)); 

     $this->setElementDecorators(
      array(
       'ViewHelper', 
       array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element')), 
       array('Label', array('tag' => 'td', 'class' => 'companylabel')), 
       array(array('row' => 'HtmlTag'), array('tag' => 'tr', 'class' => 'signuptr')) 
     )); 
     $submit->setDecorators(
      array(
       'ViewHelper', 
       array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element')), 
       array(array('emptyrow' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element', 'placement' => 'PREPEND')), 
       array(array('row' => 'HtmlTag'), array('tag' => 'tr')) 
     )); 
     $this->setDecorators(
      array(
       'FormElements', 
       array('HtmlTag', array('tag' => 'table', 'class' => 'signuptable')), 
       'Form' 
     )); 

回答

3

你忘了錯誤添加到裝飾。

$this->setDecorators(array(
    // add this line 
    'Errors', 

    'FormElements', 
    array('HtmlTag', array('tag' => 'table', 'class' => 'signuptable')), 
    'Form' 
)); 
+1

我的榮幸,享受 – ilanco