2011-11-19 3 views
1

나는 나의 젠드 양식에 다음 코드를 작성했다 :Zend_Validate_Identical에 이상한 문제가 있습니까?

$newpassword = new Zend_Form_Element_Password('newpassword'); 
    $newpassword->setLabel("Enter your New Password :") 
       ->setRequired(true) 
       ->addFilter('StripTags') 
       ->addFilter('StringTrim') 
       ->addValidator(
        'NotEmpty', 
         TRUE, 
         array('messages' => array(
           'isEmpty' => 'Please enter new password.' 
               ) 
          ) 
        ) 
       ->addValidator(
        'Alnum', 
        TRUE, 
        array('messages' => array(
           'alnumInvalid' => 'Please enter a valid new password.', 
           'notAlnum' => 'Please enter a valid new password.', 
           'alnumStringEmpty' => 'Please enter a valid new password.' 
              ) 
         ) 
         ) 
       ->addValidator('StringLength', false, array(4, 25)) 
       ->getValidator('StringLength')->setMessage("Should be 4-25 characters long."); 


    $retypepassword = new Zend_Form_Element_Password('retypepassword'); 
    $retypepassword->setLabel("Retype-Password :") 
        ->setRequired(true) 
        ->addFilter('StripTags') 
        ->addFilter('StringTrim') 
        ->addValidator(
         'NotEmpty', 
         TRUE, 
         array('messages' => array(
             'isEmpty' => 'Please enter confirm password.' 
               ) 
          ) 
         ) 
        ->addValidator(
         new Zend_Validate_Identical('newpassword'), 
         TRUE, 
         array('messages' => array(
'notSame' => 'New password and confirm password are not matching. They must be same.', 
'missingToken' => 'New password and confirm password are not matching. They must be same.' 
               ) 
              ) 
           ) 
       ->addValidator('StringLength', false, array(4, 25)) 
       ->getValidator('StringLength')->setMessage("Should be 4-25 characters long."); 

당신은 내가 missignTokennotSame에 대한 Zend_Validate_Identical 예에 대한 오류 메시지를 무시 있다고 볼 수 있듯이, 여전히 형식은 즉, 이라는 기본 오류 메시지가 표시됩니다. "두 개의 토큰이 일치하지 않습니다."

아무도 도와 줄 수 있습니까? 당신이 그것을 (당신이 new Zend_Validate_Identical을 전달하여 일을하는지) 발리 객체를 전달하면 Zend_Form_Element::addValidator$options 매개 변수를 완전히 무시됩니다

답변

2

사전에

감사합니다 ....

$this->addValidator(
    'Identical', 
    TRUE, 
    array('token' => 'newpassword', 
      'messages' => array(
       'notSame' => 'New password and confirm password are not matching. They must be same.', 
       'missingToken' => 'New password and confirm password are not matching. They must be same.' 
     ) 
    ) 
); 
+0

감사합니다 존, 정말 도움이되었다 :

대신, 당신은 당신이 당신의 다른 유효성 검사기를 추가 한 방식에 가까운 무언가를하고 싶다. :) – Pushpendra