Tom*_*Tom 4 php validation zend-framework
我正在创建一个像这样的电子邮件表单元素(在Zend表单中):
//create e-mail element
$email = $this->createElement('text', 'username')
->setLabel('E-mail:')
->setRequired(true)
->addFilters(array('StringTrim', 'StringToLower'))
->addValidator('EmailAddress', false, array(
'messages' => array(
Zend_Validate_EmailAddress::INVALID => 'Dit e-mail adres is ongeldig.',
)
));
//add element
$this->addElement($email);
Run Code Online (Sandbox Code Playgroud)
现在,当输入无效的电子邮件时,会出现很多消息:
'#' is no valid hostname for email address '@#$@#'
'#' does not match the expected structure for a DNS hostname
'#' does not appear to be a valid local network name
'@#$' can not be matched against dot-atom format
'@#$' can not be matched against quoted-string format
'@#$' is no valid local part for email address '@#$@#'
Run Code Online (Sandbox Code Playgroud)
我想知道,是否可以让它只发出我提供的错误信息,例如"请输入有效的电子邮件地址".
最简单的方法是使用addErrorMessage()为所有错误设置单个自定义消息.
在您的示例中,您可以将其添加到代码中并以流畅方式调用它,或添加该行
$email->addErrorMessage('Dit e-mail adres is ongeldig.');
Run Code Online (Sandbox Code Playgroud)
您还应该将第二个参数更改为addValidator,如下所示,一旦验证失败,则不会检查其他条件.
->addValidator('EmailAddress', true)
Run Code Online (Sandbox Code Playgroud)
" 参考指南"对此进行了解释,但不是很好.该名称addErrorMessage并不意味着它将覆盖默认消息,但您有.