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

Validation Laravel自定义验证失败,并显示一条好消息,validation,laravel-5,translation,Validation,Laravel 5,Translation,我需要添加自定义验证失败,我可以添加这样的消息 $validator->errors()->add('my_number', 'validation.not_in'); 我收到的一条错误消息是验证。不在 我需要的是这样的错误消息-所选的我最喜欢的号码无效。 我将\resources\lang\en\validation.php配置为向其添加正确的消息和属性。基本上是这样的: return [ ... 'not_in' => 'The

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

$validator->errors()->add('my_number', 'validation.not_in');
我收到的一条错误消息是
验证。不在

我需要的是这样的错误消息-
所选的我最喜欢的号码无效。

我将
\resources\lang\en\validation.php
配置为向其添加正确的消息和
属性。基本上是这样的:

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

];
失败的解决方案

我能想到的一个解决方案是转到Laravel源代码,找到一个文件
vendor\Laravel\framework\src\illumb\Validation\Validator.php
,找到一个函数
addFailure
,并将其公开,而不是
受保护

那我就可以做像这样的事情了

$validator->addFailure('my_number', 'not_in', []);
当我这么做的时候,我收到的信息是
所选的我最喜欢的号码无效。
如预期

但我无法更改Laravel的源代码


请给我另一个选项。

嗯,当覆盖
存储/lang/en
中的语言文件时?这
validation.php
并根据需要更改消息,是否不起作用?
lang('validation.not_in',[':attribute'=>'My favorite Number'])
给了您什么?我在问题中添加了validation.php示例。lang不是一个函数。你是说@lang吗?如果是,则它仅在
刀片中可用,我将在
控制器中添加自定义故障。您的意思是
$validator->errors()->add('my_number','validation.not_in',['attribute'=>u('validation.attributes.my_number'))如果是,则表示它正在工作。但是看起来很丑。与此不同的是,它将忽略
validation.php
的自定义部分。对不起,我认为新文档中仍然写着。关于我们的旧文件。我已经有一段时间没有使用拉威尔了,我只是对它有一个粗略的记忆。你是一个叛徒:)你从拉威尔身上挑了什么?