Обработка валидатора для возврата JSON - PullRequest
0 голосов
/ 17 января 2019

Laravel выдает исключение при $validator->fails() вызове.

Хорошо, я просто хочу создать метод регистра без сохранения состояния в ApiController.php с Laravel 5.7.

Я использовал Validator фасад для проверки отправленных данных.

    $validator = Validator::make($request->all(), [
            'name' => 'required',
            'email' => 'required|email|unique',
            'password' => 'required',
            'c_password' => 'required|same:password',
        ]);
        if ($validator->fails())  {
            return response()->json(['error'=>$validator->errors()], 
                                           Response::HTTP_UNAUTHORIZED);
        }

Но когда я использую xdebug, я вижу что-то странное. Методы сбоя, похоже, выдают исключение.

Laravel отправляет ошибку HTML-страницу с заголовком:

Для уникального правила валидации требуется не менее 1 параметра.

Маршрут используется в api.php

Route::post('register', 'Api\UserController@register');

У вас есть объяснение этому? Спасибо за чтение.

Ответы [ 2 ]

0 голосов
/ 17 января 2019

В запросе API добавьте следующий заголовок:

...
Accept: application/json // <-----

Это скажет Laravel, что вы хотите получить ответ в формате json.


Примечание: это отличается от Content-type: application/json. Последнее указывает формат данных, которые отправляются в теле.

0 голосов
/ 17 января 2019

Синтаксис уникального правила: unique:table,column,except,idColumn. Поэтому я изменил для вас использование таблицы users. Если вы не хотите использовать таблицу пользователей, измените часть users позади unique:

$validator = Validator::make($request->all(), [
            'name' => 'required',
            'email' => 'required|email|unique:users',
            'password' => 'required',
            'c_password' => 'required|same:password',
]);
if ($validator->fails())  {
    return response()->json(['error'=>$validator->errors()], 
        Response::HTTP_UNAUTHORIZED);
}

Для получения дополнительной информации об уникальном правиле см .: https://laravel.com/docs/5.7/validation#rule-unique

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