【问题标题】:How to define field specific error message or overwrite the default one for a custom validation rule used in a FormRequest in Laravel 5.5如何为 Laravel 5.5 中 FormRequest 中使用的自定义验证规则定义字段特定错误消息或覆盖默认错误消息
【发布时间】:2019-04-23 02:59:03
【问题描述】:

我创建了一个自定义验证规则,并使用它来验证 FormRequest 中的数据字段。

但是,我想为此字段使用不同的消息,而不是在规则的 message() 方法中设置的默认消息。

所以,我尝试使用 FormRequest 中的方法 messages() 使用字段名称的键和规则(在蛇案例中)

public function rules()
{
    return [
        'clients' => [
            new ClientArrayRule(),
        ],
    ];
}

public function messages()
{
    return [
        'clients.client_array_rule' => "clients should be a valid client array"
    ];
}

错误消息没有改变,我在验证器的代码中调查了一下,我发现对于自定义规则,它使用了似乎不关心自定义的方法 validateUsingCustomRule消息。

关于如何覆盖它或最好的方法是什么?

【问题讨论】:

  • 你能告诉我们你的rules()方法的内容吗?
  • @DenisPriebe 我编辑了问题添加规则方法

标签: php laravel validation laravel-5 localization


【解决方案1】:

关于 Laravel 的自定义消息:

 /**
 * Get the validation rules that apply to the request.
 *
 * @return array
 */
public function rules()
{
    return [
        'username' => 'required',
        'password' => 'required',
        'email' => 'required',
        'age' => 'required|gte:4',

    ];
}


/**
 * Get the error messages for the defined validation rules.
 *
 * @return array
 */
public function messages()
{
    return [
        'username.required' => 'Custom message',
        'password.required' => 'Custom message',
        'email.required' => 'Custom message',
        'age.required' => 'Custom message',
        'age.gte' => 'Custom message'
    ];
}

【讨论】:

  • 这是使用 Laravel 内置规则时的情况,它运行良好,但在我的情况下,验证规则是自定义规则。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-07
  • 1970-01-01
  • 2018-04-30
  • 2012-03-24
  • 2021-10-09
  • 2016-10-21
  • 2021-12-09
相关资源
最近更新 更多