我有一个表单和一个用户模型。在控制器中,我将表单验证器设置为$user->getInputFilter()
. 这样可行。
然后我在表单中添加了一个验证码,没有任何其他代码,它似乎可以自行验证。所以我怀疑每个元素也可以有自己的验证器,无论表单的“全局”验证器如何,它都会被调用。
我正在使用“Factory Backed Form extension”构建我的表单,并采用此代码并像这样添加它(似乎正确,密码字段确实有'name' => 'password'
):
$this->add(array(
'name' => 'password_confirm',
'attributes' => array(
'type' => 'password',
'required' => true,
),
'options' => array(
'label' => 'Confirm Password',
),
'validators' => array(
array('identical', false, array('token' => 'password'))
)
));
但这并不有效(总是通过)。查看其他代码示例,将输入过滤器添加到单个元素似乎确实不错。如上所述,验证码似乎可以自我验证,但为什么不这样呢?我知道我可以自己检查和使用$form->addError($message)
,但我正在努力学习 Zend,所以我想尽可能多地利用它。任何指针将不胜感激。