2014-10-08 51 views
0

我试图在我的控制器脚本中覆盖受保护的$_messageTemplates = array(如何在Zend Framework中的对象Zend_Validate_EmailAddress中编写自定义错误消息

在Zend公司/验证/ EmailAddress的/ EmailAddress.php一个可以找到这个代码:

protected $_messageTemplates = array(
     self::INVALID   => "'%value%' is not a valid email address in the basic format [email protected]", 
     self::INVALID_HOSTNAME => "'%hostname%' is not a valid hostname for email address '%value%'", 
     self::INVALID_MX_RECORD => "'%hostname%' does not appear to have a valid MX record for the email address '%value%'", 
     self::DOT_ATOM   => "'%localPart%' not matched against dot-atom format", 
     self::QUOTED_STRING  => "'%localPart%' not matched against quoted-string format", 
     self::INVALID_LOCAL_PART => "'%localPart%' is not a valid local part for email address '%value%'", 
     self::LENGTH_EXCEEDED => "'%value%' exceeds the allowed length" 
    ); 

在我的控制器脚本我有这样的代码:

$validator = new Zend_Validate_EmailAddress(); 
     if ($validator->isValid($_POST['email'])) { 
      echo 'email appears to be valid'; 
     } else { 
      foreach ($validator->getMessages() as $message) { 
       echo "$message\n"; 
      } 
     } 

代码工作很好,但如何能写一个自定义错误信息吗?

回答

0

明白了。

$validator = new Zend_Validate_EmailAddress(); 
$validator->setMessage(
      'Hello world, something was wrong', 
      Zend_Validate_EmailAddress::INVALID 
); 
if ($validator->isValid($_POST['email'])) { 
    echo 'email appears to be valid'; 
} else { 
    foreach ($validator->getMessages() as $message) { 
     echo "$message\n"; 
    } 
} 
相关问题