2010-04-29 7 views
1

유효성 검사가 실패하지만 오류 메시지가 반환되지 않습니다.젠드 프레임 워크 사용자 지정 유효성 검사 클래스 오류 메시지

 $form->addElement('text', 'phone_number', array(
    'required' => true, 
     'validators' => array(
     array('NotEmpty', true, array('messages' => 'Enter a valid Phone Number')), 
      array('regex', false, array('pattern' => '/\([0-9]{3}\)\s[0-9]{3}-[0-9]{4}/', 
       'messages' => 'Enter a valid Phone Number' 
    )), 
      'CheckPhoneNumber'), 

     ), 
    )); 

사용자 정의 클래스 :

class Custom_Validators_CheckPhoneNumber extends Zend_Validate_Abstract{ 
const IN_USE = 'inUse'; 

protected $_messageTemplates = array(
    self::IN_USE => "'%value%' is currently in use" 
); 

public function isValid($value) 
{ 
    $this->_setValue($value); 

     $user_check = Users::getActive(preg_replace("/[^0-9]/", "", $value)); 
     if($user_check->id){ 
      $this->_error(self::IN_USE); 
      return false; 
     } 

    return true; 
} 

}

그냥 "IN_USE"오류를 제공하지 않습니다 실패합니다.

답변

1

사용자 정의 검사기에서 오류가 발생 했습니까? 사용자 지정 유효성 검사기에서 실제로 실패했는지 확인하십시오. 그렇지 않으면 당신이 올바른 접두사 경로 형태의 요소에 대한 구성

$form->addElementPrefixPath(
    'Custom_Validators', 
    'Custom/Validators', 
    'validate' 
); 

사용자 정의 유효성 검사기의 코드가 잘 될 것 같다 경우

는 확인합니다.

2

오류를 표시하지 않거나 다른 문자가있는 phone_number 요소입니까?

disableLoadDefaultDecorators으로 기본 데코레이터를 사용 중지 했습니까?

어떻게 배열에 사용자 정의 유효성 검사기 공급에 대한 :

$form->addElement(
    'text', 'phone_number', array(
     'required' => true, 
     'validators' => array(
      array(
       'NotEmpty', true, array(
        'messages' => 'Enter a valid Phone Number' 
       ) 
      ), 
      array(
       'regex', false, array(
        'pattern' => '/\([0-9]{3}\)\s[0-9]{3}-[0-9]{4}/', 
        'messages' => 'Enter a valid Phone Number' 
       ) 
      ), 
      array(
       'CheckPhoneNumber' 
      ) 
     ) 
    ) 
); 
1
$form->addElement('text', 'phone_number', array(
'required' => true, 
    'validators' => array(
    array('NotEmpty', true, array('messages' => 'Enter a valid Phone Number')), 
     array('regex', false, array('pattern' => '/\([0-9]{3}\)\s[0-9]{3}-[0-9]{4}/', 
      'messages'=>array(Zend_Validate_Regex::NOT_MATCH=>'%value% is not a valid phone') 
)), 
     'CheckPhoneNumber'), 

    ), 
)); 
+0

당신은 차이를 지적시겠습니까? –

관련 문제