首页 > 解决方案 > Laravel 自定义验证失败并显示一条好消息

问题描述

我需要添加自定义验证失败,我可以添加这样的消息

$validator->errors()->add('my_number', 'validation.not_in');

我收到的错误消息是validation.not_in

我需要的是这样的错误消息-The selected My Favourite Number is invalid.

我已经\resources\lang\en\validation.php配置好将正确的消息传递attributes给它。它基本上是这样的:

return [
    ...
    'not_in'               => 'The selected :attribute is invalid.',
    ....
    'attributes' => [
         'my_number' => 'My Favourite Number'
    ],

];

失败的解决方案

我能想到的一个解决方案是去 Laravel 源代码并找到一个文件vendor\laravel\framework\src\Illuminate\Validation\Validator.php,找到一个函数addFailure并制作它public而不是protected.

然后我就可以做类似的事情

$validator->addFailure('my_number', 'not_in', []);

当我这样做时,我收到了我的消息,The selected My Favourite Number is invalid.正如预期的那样!

但我无法更改 Laravel 的源代码

请给我另一种选择。

标签: validationlaravel-5translation

解决方案


推荐阅读