如何以zend格式验证密码字段?

And*_*rew 12 zend-framework zend-form

在我的表单中,我试图验证用户两次都填写相同的值(以确保他们没有犯错).我认为这Zend_Validate_Identical是为了什么,但我不太确定如何使用它.这是我到目前为止所得到的:

$this->addElement('password', 'password', array(
        'label'      => 'Password:',
        'required'   => true,
        'validators' => array(
            'Identical' => array(What do I put here?)
        )
    ));
$this->addElement('password', 'verifypassword', array(
        'label'      => 'Verify Password:',
        'required'   => true,
        'validators' => array(
            'Identical' => array(What do I put here?)
        )
    ));
Run Code Online (Sandbox Code Playgroud)

我需要两个元素吗?我在阵列中放了什么?

Jas*_*son 28

为了它的价值,在1.10.5版本中添加了对模型中两个相同表单字段进行比较的支持.我写了一个关于这个问题的简短教程,您可以通过以下链接访问该教程,但最重要的是Zend_Validate_Identical验证器已被重构以接受表单字段名称作为输入.例如,要比较表单字段pswd和confirm_pswd的值,您可以将验证器附加到confirm_pswd,如下所示:

$confirmPswd->addValidator('Identical', false, array('token' => 'pswd'));
Run Code Online (Sandbox Code Playgroud)

奇迹般有效.

有关更完整的示例,请参阅使用Zend Framework验证相同的密码.


bca*_*cat 5

我目前无法测试,但我认为这可能有效:

$this->addElement('password', 'password', array(
    'label'      => 'Password:',
    'required'   => true
));
$this->addElement('password', 'verifypassword', array(
    'label'      => 'Verify Password:',
    'required'   => true,
    'validators' => array(
        array('identical', true, array('password'))
    )
));
Run Code Online (Sandbox Code Playgroud)