我有以下代码为用户的电子邮件地址生成一个输入字段
$email = new Zend_Form_Element_Text('email');
$email->setLabel('Email:')
->addFilters(array('StringTrim', 'StripTags'))
->addValidator('EmailAddress')
->addValidator(new Zend_Validate_Db_NoRecordExists(
array(
'adapter'=>Zend_Registry::get('user_db'),
'field'=>'email',
'table'=>'tbl_user'
)))
->setRequired(true)
->setDecorators(array(
array('Label', array('escape'=>false, 'placement'=>'append')),
array('ViewHelper'),
array('Errors'),
array('Description',array('escape'=>false,'tag'=>'div')),
array('HtmlTag', array('tag' => 'div')),
));
$this->addElement($email);
现在的问题是如果用户输入无效的电子邮件主机名,它会产生 3 个错误。假设用户输入“admin@l”作为电子邮件地址,错误将是
*“l”不是电子邮件地址“admin@l”的有效主机名
*“l”与 DNS 主机名的预期结构不匹配
*“ l' 似乎是本地网络名称,但不允许使用本地网络名称
我只是希望它只给出一个自定义错误而不是所有这些。如果我通过 addErrorMessage 方法设置错误消息“无效的电子邮件地址”,它将再次针对 db_validation 生成相同的消息。