我试图用“相同”的验证,验证两个密码是否在我的登记表相同,但它一直试图验证与实际的话,我该令牌进入,而不是表单元素,我想验证。代码如下所示:(这是我的表单模型构造..)在窗体使用Zend_Validate_Identical验证
$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));
而不是验证对所谓的“密码”的形式元素,它不停地尝试去匹配实际字符串“密码”
的我的工作是在数据发布到控制器之后创建一个验证器,并根据发布数据进行验证,但是如果有更多的模块化方法可以做到这一点(也就是在表单构造器中留下逻辑),我会爱知道。
谢谢您提前
检查:http://stackoverflow.com/questions/347856/zend-form-how-to-check-2-fields-are-identical – Marcin 2011-05-15 23:28:27
这个例子没有按不为我工作。我试图将验证器放置在表单模型中,但它一直试图与“实际字符串”比较,而不是链接的标记进行比较。我可能做错了什么? – 2011-05-17 03:27:44
iirc唯一可以通过这个方法的方法是在检查isPost()是否为真后,在控制器中创建验证器。用这种方法你可以将令牌设置为第一个密码的值 – Ascherer 2011-05-19 14:24:49