Изменить проверку уникального атрибута в Laravel - PullRequest
0 голосов
/ 27 сентября 2019

Попытка настроить сообщение об ошибке для атрибута 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',
]);

И я все еще получаю это:

Письмо уже занято.

1 Ответ

0 голосов
/ 27 сентября 2019

с помощью пользовательского валидатора

Вы можете создать собственный валидатор и передавать в него свои сообщения

$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!',
    ],
]
...