Вернуть ошибки проверки Laravel как ответ JSON - PullRequest
0 голосов
/ 29 мая 2018

В моем RegisterController в Laravel у меня возникают проблемы с возвратом ошибок в мой интерфейс.Наше приложение построено в виде REST API, поэтому регистрация нового пользователя происходит через сообщение AJAX на маршруте регистрации.Это хорошо работает, если проверка прошла успешно, но если проверка не пройдена, ошибки не отображаются.Он просто перенаправляет на домашнюю страницу Laravel.Мы не используем Blade для внешнего интерфейса, поэтому невозможно получить ошибки проверки по умолчанию от Blade.Внешний интерфейс - это клиент ReactJS, который обменивается данными с внутренним интерфейсом через вызовы AJAX.

Как получить JSON с полями, которые не прошли проверку обратно в мой интерфейс?

protected function validator(array $data)
{
    return Validator::make($data, [
        'first_name' => 'required|string|max:255',
        'last_name'  => 'required|string|max:255',
        'email'      => 'required|string|email|max:255|unique:users',
        'password'   => 'required|string|min:6|confirmed',
        'birth_year' => 'required|integer|min:4',
        'lat'        => 'required|numeric',
        'lon'        => 'required|numeric',
    ]);        
}

Ответы [ 3 ]

0 голосов
/ 29 мая 2018

Я решил проблему, отключив промежуточное программное обеспечение «guest» в RegisterController.Я не уверен, что это твердое решение, но пока оно работает.

0 голосов
/ 29 мая 2018

Вы можете решить эту проблему, вернув ошибки как json respone

$validator = Validator::make($data, [
    'first_name' => 'required|string|max:255',
    'last_name'  => 'required|string|max:255',
    'email'      => 'required|string|email|max:255|unique:users',
    'password'   => 'required|string|min:6|confirmed',
    'birth_year' => 'required|integer|min:4',
    'lat'        => 'required|numeric',
    'lon'        => 'required|numeric',
]);        

if ($validator->fails()) {    
  return response()->json($validator->messages(), 200);
}
0 голосов
/ 29 мая 2018

Ваш код в порядке, вы можете перехватить ошибки, потому что laravel автоматически вернет ответ JSON с HTTP-статусом 422.

Так что в основном в вашем ajax используется функция ошибок, если валидатор не проходит, ajax автоматическиВыполните код, содержащийся в вашей ошибке, от ajax.

Для получения дополнительной информации о том, как правильно обрабатывать ошибки для вашего ajax, пожалуйста, взгляните на этот вопрос. Отображение ошибок проверки в Laravel 5 с React.js и AJAX

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...