Php 将一个元素留空时出现zend相同验证程序问题

Php 将一个元素留空时出现zend相同验证程序问题,php,zend-framework,zend-form,Php,Zend Framework,Zend Form,我正在使用以下代码: $form->addElement('password', 'elementOne'); $form->addElement('password', 'elementTwo', array( 'validators' => array( array('identical', false, array('token' => 'elementOne')) ) )); 如果两个文本不同,我会从验证程序中得到一个错误,但是如

我正在使用以下代码:

$form->addElement('password', 'elementOne');
$form->addElement('password', 'elementTwo', array(
    'validators' => array(
        array('identical', false, array('token' => 'elementOne'))
    )
));
如果两个文本不同,我会从验证程序中得到一个错误,但是如果我将第二个文本留空,验证将不会启动。为什么?

(我不想按要求填写这些字段,因为用户只有在想更改密码时才应该填写这些字段,但也可以将其留空)


我做错了什么?我应该把验证器放在这两个元素上吗

问题在于AllowEmpty标志(当不需要元素时,此标志设置为true)。我将其设置为false,验证程序现在按预期启动

$form->addElement('password', 'elementOne');
$form->addElement('password', 'elementTwo', array(
    'validators' => array(
        array('identical', false, array('token' => $_POST['elementOne']))
    )
));
setAllowEmpty(false)