【问题标题】:Custom error messages in package for Laravel 5.xLaravel 5.x 包中的自定义错误消息
【发布时间】:2017-08-17 03:42:51
【问题描述】:

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

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

【问题讨论】:

  • 没用过,但github.com/joshbrw/laravel-validation-rule-registration 可能有用,或者至少能引导你走向正确的方向。
  • 我遇到了完全相同的问题。验证规则注册插件有助于将规则注册到全局空间,但看起来并不能解决这个问题。特别是给定带有验证的自定义包将需要非常具体的属性消息。

标签: php validation laravel-5 package


【解决方案1】:

好的,想通了。

如果您正在使用 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();

我还没有测试过这段代码 - 我的有点不同,但这应该可以工作。

参考这里:https://laravel.com/docs/5.4/validation#custom-error-messages

【讨论】:

    猜你喜欢
    • 2015-09-07
    • 2018-08-12
    • 1970-01-01
    • 1970-01-01
    • 2015-12-22
    • 1970-01-01
    • 2020-12-05
    • 2021-02-24
    • 2020-02-26
    相关资源
    最近更新 更多