Php Laravel 5.x软件包中的自定义错误消息

Php Laravel 5.x软件包中的自定义错误消息,php,validation,laravel-5,package,Php,Validation,Laravel 5,Package,我正在为Laravel5.4创建一个包,并且有一些带有错误消息的自定义正则表达式。通常,您将这些消息放在de validation.php文件中(该文件有效)。但是在安装软件包时,我希望用户不必复制或粘贴这些软件包 有没有办法让包拥有一个额外的验证语言文件,当在常规验证语言文件中找不到规则时,会自动调用该文件?OK解决了这个问题 如果您使用的是Validator::make()调用。你可以这样做 $fields = [ "fieldA" => "Testing", "fie

我正在为Laravel5.4创建一个包,并且有一些带有错误消息的自定义正则表达式。通常,您将这些消息放在de validation.php文件中(该文件有效)。但是在安装软件包时,我希望用户不必复制或粘贴这些软件包

有没有办法让包拥有一个额外的验证语言文件,当在常规验证语言文件中找不到规则时,会自动调用该文件?

OK解决了这个问题

如果您使用的是Validator::make()调用。你可以这样做

$fields = [
    "fieldA" => "Testing",
    "fieldB" => "TextB",
];

$rules = [
    "fieldA" => [
        "alpha",
    ],
    "fieldB" => [
        "regex:/TextC/",
    ],
];

$messages = [
    "fieldA.alpha" => "Sorry champ, but fieldA must be only characters",
    "fieldB.regex" => "The regex failed here",
];

$validator = Validator::make($fields, $rules, $messages);
if ($validator->fails()) return $validator->messages()->all();
我还没有测试过这段代码——我的代码有点不同,但应该可以


此处的参考资料:

没有使用过它,但可能有用,或者至少可以引导您走向正确的方向。我遇到了完全相同的问题。validation rule registration插件有助于将规则注册到全局空间中,但它似乎无法解决此问题。特别是给定的带有验证的自定义包将需要非常特定的属性消息。