Laravel自定义验证失败并显示一条好消息

时间:2018-08-03 00:57:09

标签: validation laravel-5 translation

我需要添加自定义验证失败,我可以添加一条消息

$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的源代码

请给我另一个选择。

0 个答案:

没有答案