2013-12-04 4 views
0

Я написал код для добавления персонализированного сообщения об ошибке в элемент рамки zend, дело в том, что ошибка не отображается. У меня есть следующая часть соответствующего кода: (я могу получить в другом месте, где добавить errormessage).Пользовательское сообщение об ошибке в форме Zend не отображается

 if($this->_request->isPost() && $form->isValid($this->_request->getPost())){ 
      $afgehandeldValue = $form->getValue('afgehandeld'); 
      if($afgehandeldValue == 0) 
      { 
       $conversationValues['conversation_handled'] = 0; 
      } 
      else 
      { 
       $checkFollowUp = $form->getValue('opvolging'); 
       if($checkFollowUp == 0) 
       { 
        $conversationValues['conversation_handled'] = 1; 
       } 
       else 
       { 
        $form->getElement('opvolging') 
        ->addError('Je mag niemand opgeven voor een opvolgend gesprek als afgehandeld is aangevinkt.') 
        ->markAsError(); 
       } 
      } 

ответ

0

Это должно работать (markAsError() не нужен, поскольку addError() автоматически помечает этот элемент как инвалид). Возможно, ваши условия неверны? Попробуйте echo что-то перед установкой ошибки, чтобы увидеть, действительно ли эта часть кода запущена.

+0

Я echo'd там что-то я получил выход и я избавилась от markAsError, но до сих пор нет SucceS. – Daan

0

Предполагая, что вы используете zf1 , вы можете добавить собственное сообщение об ошибке в свою zend-форму самостоятельно, не нужно делать это в контроллере, как вы делаете.

$this->addElement('text', 'text', array(   
     'required' => true, 
     'validators' => array(    
      array('NotEmpty',true,'options' => array('messages' => 'please enter some text')), 
     ), 
     'label'  => 'Text Element:', 
     'placeholder'=>"Insert Text",          
    )); 
0

Если вы используете Zend framework 1.X и хотите, чтобы этот конкретный элемент формы отображал ошибки, вы можете сделать это в форме Element вроде этого.

$opvolging = new Zend_Form_Element_Text('opvolging', 
          array('placeholder' => 'opvolging') 
        );    


$opvolging   ->setLabel('opvolging : ') 
        ->setRequired(true) 
        ->addFilter('StripTags') 
       ->setAttrib('accept-charset', 'utf-8') 
       ->addFilter('StringTrim') 
       ->addValidator('NotEmpty') 
        ->getValidator('NotEmpty')->setMessage('Je mag niemand opgeven voor een opvolgend gesprek als afgehandeld is aangevinkt.'); 

и в контроллере действий

$opvolging = $form->getValue('opvolging'); 
Смежные вопросы