自定义Zend Framework 2电子邮件字段验证器错误消息

Sae*_*ven 6 php zend-framework2

我有一个输入过滤器,其电子邮件字段的验证器配置如下;

'validators' => array(
    array (
        'name' => 'EmailAddress',
        'options' => array(
            'messages' => array(
                'emailAddressInvalidFormat' => "Email address doesn't appear to be valid.",
            )
        ),
    ),
    array (
        'name' => 'NotEmpty',
            'options' => array(
                'messages' => array(
                    'isEmpty' => 'Email address is required',
                )
            ),
        ),
    ),
),
Run Code Online (Sandbox Code Playgroud)

它的工作原理,那部分很好,但我会在这里得到业务部门的嘲笑,如果我推出一个应用程序向用户吐出此错误消息:

输入与模式不匹配

'/^[a-zA-Z0-9.!#$%&'+ / =?^ _` {|}〜 - ] + @ [a-zA-Z0-9 - ] +(?:.[a -zA-Z0-9 - ] +) $ /'

有一个奇怪的书呆子喜剧埋在那里(是的,我知道它是准确的,但是,rofl).

对于善良的灵魂,我有两个问题:

如何自定义该错误消息? 我似乎无法找到正确的钥匙,因为我很容易'emailAddressInvalidFormat'.

此外,是否可以将所有错误卷入一个? 我的意思是.而不是张贴:

"您的电子邮件模式刚刚离开大楼,您的电子邮件不能为空,您的电子邮件似乎无效"

我可以为电子邮件发送"单一故障"消息吗?

"嘿蓓蕾,查看你的电子邮件,有些不对劲!"

一如既往地感谢您的帮助.

UPDATE

在这里投票支持这个错误 https://github.com/zendframework/zend-validator/issues/41

小智 0

\xe2\x80\x9c输入与模式\xe2\x80\x9d 消息不匹配似​​乎Zend\\Validator\\Regex::NOT_MATCH实际上不是Zend\\Validator\\EmailAddress类的。

\n\n

从您的代码来看,尚不清楚您在何处以及是否使用Regex验证器。我相信内部EmailAddress不会使用。Regex

\n\n

如果您想自定义Regex消息,它可能如下所示:

\n\n
array (\n    \'name\' => \'Regex\',\n    \'options\' => array(\n        \'messages\' => array(\n            \'regexNotMatch\' => "Not so nerdy message here.",\n        )\n    ),\n),\n
Run Code Online (Sandbox Code Playgroud)\n