可能重复:
zendframework 2 inputfilter customize default error message
我正在尝试使用Zend \ InputFilter \ InputFilter来验证注册表单中的输入。我的代码如下:
除了用户将两个字段留空之外的所有情况下,此方法都适用。在该实例中,'email_confirm'的验证器返回错误Array ( [isEmpty] => Value is required and can't be empty )
。
如何自定义此错误消息?我无法使用以下设置:
'messages' => array(
'isEmpty' => 'Message Here'
),
因为抛出一个异常说(非常正确)Zend \ Validator \ Identical没有'isEmpty'的消息模板。并且它没有收到我之前为“电子邮件”字段设置的消息,否则它将返回Array ( [isEmpty] => Please enter your email address )
。
$this->add($inputFactory->createInput(array(
'name' => 'email',
'required' => true,
'filters' => array(
array('name' => 'StripTags'),
array('name' => 'StringTrim'),
),
'validators' => array(
array(
'name' =>'NotEmpty',
'options' => array(
'messages' => array(
'isEmpty' => 'Please enter your email address'
),
),
),
array(
'name' => 'StringLength',
'options' => array(
'encoding' => 'UTF-8',
'max' => 200,
'messages' => array(
'stringLengthTooLong' => "Email addresses cannot be more than 200 characters"
),
),
),
array(
'name' =>'EmailAddress',
'options' => array(
'useMxCheck' => true,
),
),
),
)));
$this->add($inputFactory->createInput(array(
'name' => 'email_confirm',
'required' => true,
'filters' => array(
array('name' => 'StripTags'),
array('name' => 'StringTrim'),
),
'validators' => array(
array(
'name' => 'Identical',
'options' => array(
'token' => 'email',
'messages' => array(
'notSame' => "Your email addresses do not match, please try again",
),
),
),
),
)));
谢谢, 尼尔
答案 0 :(得分:0)
你必须以这种方式使用Zend\Validator\NotEmpty::IS_EMPTY
:
array(
'name' =>'NotEmpty',
'options' => array(
'messages' => array(
\Zend\Validator\NotEmpty::IS_EMPTY => 'Please enter your email address'
),
),
),
您可以查看API了解更多信息。
修改强>
深入了解Zend \ Validator \ NotEmpty源代码我看到IS_EMPTY
常量具有'isEmpty'
值,因此无法解决您的问题。无论如何,你应该使用这些常量而不是直接值,以避免可能的更新问题。