2012-05-20 4 views
1

Я использую валидатор для проверки, если логин существует в базе данных, и он работает, но после добавления декораторов для формы Zend сообщение об ошибке проверки не отображается.Валидатор в Zend Framework?

код:

$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

Смежные вопросы