@Dimon3x

Как вывести ошибки валидации с помощью AJAX?

Вот так, я передаю в вид ошибки, без аякса, это работает.

public function login(Request $request) {
         $messages = [
            'email.required' => 'Заполните поле',
            'email.email' => 'Вы ввели не email'    
        ];
         
        $validator = Validator::make($request->all(), [
            'email' => 'required|string|email|max:255',
        ], $messages);
        
     if ($validator->fails()) {
          return Redirect::back()->withErrors($validator);
        }
       }

Но если добавить аякс, то этот способ уже не работает.

Наверно возвращать надо уже не методом withErrors, а как то по другому, как? Как в контроллере вытащить ошибки, которые попали в массив $validator? И потом их уже вернуть

так выдаёт 500
return response()->json(withErrors($validator));

Вот моё решение
$messages = [
            'email.required' => 'Заполните поле',
            'email.email' => 'Вы ввели не email',
            'password.required' => 'Введите пароль',
            'password.min' => 'Пароль слишком короткий (миниум 8 символов)',
        ];
         
        $validator = Validator::make($request->all(), [
            'email' => 'required|string|email|max:255',
            'password' => 'required|min:8',
        ], $messages);
        
     if ($validator->fails()) {
          //return Redirect::back()->withErrors($validator); //без аякса
         return response()->json($validator->errors());
        }
  • Вопрос задан
  • 129 просмотров
Пригласить эксперта
Ответы на вопрос 1
Alex_Wells
@Alex_Wells
PHP/Kotlin
$validator->validate();

Ничего более делать не нужно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы