【问题标题】:Modify unique attribute validation in Laravel修改 Laravel 中的唯一属性验证
【发布时间】:2019-09-27 23:23:03
【问题描述】:

尝试自定义unique 属性的错误消息。尝试更改我的validation.php

$messages = [
    'custom' => [
        'email' => [
            'unique:users' => 'Oops, email is taken. Please try again!'
        ]
    ]
],

我在controller 中调用验证:

request()->validate([
    'email' => 'unique:users',
    'password' => 'required|min:3',
]);

我仍然得到这个:

电子邮件已被占用。

【问题讨论】:

    标签: validation laravel-5 laravel-validation


    【解决方案1】:

    使用自定义验证器

    您可以创建一个自定义验证器并将您的消息传递给它

    $messages = [
        'required' => 'The :attribute field is required.',
    ];
    
    $validator = Validator::make($input, $rules, $messages);
    

    对你来说,这意味着

    $messages = [
        'email' => [
            'unique' => 'Oops, email is taken. Please try again!'
        ]
    ];
    
    
    $rules = [
        'email' => 'unique:users',
        'password' => 'required|min:3',
    ];
    
    $validator = Validator::make(request()->all(), $rules, $messages);
    
    if ($validator->fails()) {
        return redirect('route/when/failed')
             ->withErrors($validator)
             ->withInput();
    }
    
    

    使用语言文件

    resources/lang/{{language}}/validation.php你可以添加

    'custom' => [
        'email' => [
            'unique' => 'Oops, email is taken. Please try again!',
        ],
    ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-05
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-29
      • 1970-01-01
      相关资源
      最近更新 更多