Я пытаюсь использовать «Идентичный» валидатор, чтобы проверить, совпадают ли два пароля в моей регистрационной форме, но он продолжает пытаться проверять фактическое слово, введенное мной для токена, а не элемент формы, который я хочупроверить против.Код выглядит следующим образом: (Это мой конструктор модели формы ..)
$password = new Zend_Form_Element_Password('password');
$password->addValidator('Regex',false,array('pattern' => '/^.*(?=.{6,20})(?=.*[\d])(?=.*[a-zA-Z])/'))
->addValidator('StringLength',false,array('max'=>20))
->setRequired(true);
$password2 = new Zend_Form_Element_Password('password2');
$password2->setRequired(true);
$password2->addValidator('Identical',false,array('token'=>'password'));
$register = new Zend_Form_Element_Submit('register');
$this->setDecorators(array(
array('ViewScript',
array('viewScript' => '_form_registration.phtml'))
)
);
$this->addElements(array($firstName,$lastName,$email,$city,$password,$password2,$register));
Вместо проверки по элементу формы, называемому «паролем», он пытается сопоставить фактическую строку «пароль»
Обходной путь, который у меня есть, заключается в том, что я создаю валидатор после того, как данные были отправлены в контроллер, и проверяю по данным поста, но если есть более модульный способ сделать это (AKA оставляет логику в формеконструктор) Хотелось бы узнать.
Заранее спасибо