Laravel 5.8 проверки вернется домой после сбоя при использовании паспорта - PullRequest
0 голосов
/ 06 июля 2019

У меня есть метод store ().

public function create(StorePost $request)
{
    $post = Post::create([
        'title' => $request->title,
        'description' => $request->description,
    ]);

    return response()->json([
        'post' => $post
    ], 201);
}

В моем классе StorePost я проверил запрос.

public function rules()
{
    return [
        'title' => 'required|string|max:255',
        'description' => 'required',
    ];
}

Когда я тестировал его с Почтальоном с неправильными записями, дляНапример, если я заполняю «описание» нулевым значением, оно возвращается на домашнюю страницу без какого-либо ответа или ошибки.Как я могу получить ошибки проверки?

Ответы [ 2 ]

0 голосов
/ 07 июля 2019

Это происходит потому, что Laravel Form Request работает как для запросов API, так и для запросов, не относящихся к API.

При запросах, сделанных формой, он будет перенаправлен обратно (на исходный URL-адрес формы или домой, если он не отправлен из формы).) с сумкой ошибок в переменной $errors, доступной для представления.

На запросах, сделанных ajax (обычно в API), обычно есть заголовок Accept: application/json, поэтому Laravel автоматически знает, что вы хотите мешок ошибок проверкикак json в теле ответа вместо перенаправления, которое не имеет смысла для API.

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

0 голосов
/ 06 июля 2019

Я решил это, просто добавив «Accept»: «application / json» в заголовок моего запроса.

...