我有以下代码
$validators = array(
'name' => array('NotEmpty',
'messages' => 'A valid name is required'
),
'email'=> array(
new Zend_Validate_Regex("^[a-z0-9]+[a-z0-9_-]*(\.[a-z0-9_-]+)*@[a-z0-9_-]+(\.[a-z0-9_-]+) *\.([a-z]+){2,}$^"),
'messages' => array('A valid email is required',
Zend_Validate_Regex::NOT_MATCH=>'The email is not valid',)
))
当我检查是否isValid并且名称和电子邮件都是空的时我得到两个'需要有效名称'
结果看起来像
Array
(
[name] => Array
(
[isEmpty] => A valid name is required
)
[email] => Array
(
[isEmpty] => A valid name is required
)
)
所以我的问题是,如果两个都是空的,如何获取所需的消息?我还需要电子邮件验证才能工作并显示正确的消息。 提前谢谢。
答案 0 :(得分:1)
要进行正确的电子邮件验证,您可以使用built-in email validator。因此,在创建表单元素时,可以指定验证器:
$email = new Zend_Form_Element_Text('email');
$email->setDecorators($this->elementDecorators)
->setLabel('Email')
->setRequired(true)
->addValidator('EmailAddress')
->setFilters(array('StringTrim','StringToLower'));
您还可以指定错误消息:
$email->setErrorMessages(array(
'err1' => 'Error1',
'err2' => 'Error2'
));
Zend_Form将为您回显正确的错误消息。
答案 1 :(得分:0)
$validator = new Zend_Validate_EmailAddress();
$validator->setMessage(
'A valid email is required',
Zend_Validate_EmailAddress::INVALID
);