2009-12-30 4 views
2

방문자가 양식에 전자 메일 주소를 입력하면 고유한지 확인하고 싶습니다. 이메일이 고유 한 경우Zend_Form에 수동으로 설정된 오류 표시

class Form_Register extends Zend_Form 
{ 
public function __construct($options = null) 
{ 
    parent::__construct($options); 
    $this->setName('register'); 

    $email = new Zend_Form_Element_Text('Email'); 
    $email->setLabel('Your email address:') 
    ->setRequired(true) 
    ->addFilter('StripTags') 
    ->addFilter('StringTrim') 
    ->addValidator('EmailAddress') 
    ->addErrorMessage('Please check that email address is correct.'); 

    $submit = new Zend_Form_Element_Submit('submit'); 
    $submit->setAttrib('id', 'submitbutton'); 

    $this->addElements(array($email, $submit)); 
} 
} 

그리고 요청이 게시물 인 경우, 내가 확인 : 그래서 간단한 이메일 양식을 가지고있다. 고유하지 않을 때 요소에 오류 메시지를 추가하고 있지만 내보기에는 나타나지 않습니다.

if ($this->getRequest()->isPost()) 
    { 
     $formData = $this->_request->getPost(); 

     // check if email is unique 
     $isUnique = FALSE; 

     if (NULL != $member) 
     { 
     $form->Email->addErrors(array('That email is already in use.')) 
     ->markAsError(); 
     } 

     $form->populate($formData); 

     $this->view->form = $form; 

내보기

는 양식을 메아리 :이 문제에

<?php echo $this->form ?> 
+0

정답은 하나입니다? – emaillenin

답변

0

내 솔루션은 Zend_Form_Decorator_Callback을 사용하는 것이 었습니다.

0

IF 문이 잘못되었습니다. 코드가 IF 루프 안에 있는지 확인하십시오. 이 같은

시도 뭔가 :

if (NULL != $member) 
{ 
    echo "inside IF loop";   
} else { 
    echo "oops missed the loop"; 
}