我正在构建一个 ZendFramework 应用程序,它作为一个登录表单,要求输入电子邮件地址和密码——在尝试登录数据库之前验证电子邮件地址似乎是有意义的,因为无效的电子邮件永远不会导致有效的点击。Zend_Validate_EmailAddress 似乎是正确的方法,但我遇到了它产生多个错误的问题(底部的问题,在代码之后)。
我的表格目前有以下
//WPMail_Form_Login::init()
$email = $this->addElement('text', 'email', array(
'label'=>'Email',
'required'=>true,
'filters'=>array('stringtrim'),
'validators'=>array(array('emailaddress', true, array(
'messages'=>array(
'emailAddressInvalidHostname'=>'Your email address is invalid',
'emailAddressInvalidFormat'=>'Your email address is invalid',
'...'=>'(repeat for all message templates)'
)
))),
));
在控制器中,我直接将表单传递到视图中:
// WPMail_AuthController::loginAction()
$this->view->form = $form;
在视图中,它直接被回显:
// views/scripts/auth/login.phtml
<?php echo $this->form ?>
结果目前是这样的:
- Your email address is invalid
- 'asda!!!' does not match the expected structure for a DNS hostname
- 'asda!!!' does not appear to be a valid local network name
我想知道的是:是否可以将 Zend _
Validate _
EmailAddress 配置为只产生一个电子邮件无效错误?我所说的“配置”是指不扩展类并用我自己的逻辑覆盖逻辑。
TIA。