Laravel Опубликовать запрос пусто Параметры запроса - PullRequest
3 голосов
/ 15 марта 2020

Когда я отправляю в конечную точку API с почтальоном или моим приложением, параметр request является пустым массивом.

С другими контроллерами почтовые запросы работают нормально, а параметр request хорошо обрабатывается. Только с моим контроллером заказа моё тело не обрабатывается.

Я не внес никаких изменений, и возврат к более старому коммиту также не помог.

Я нахожусь в точке, где я понятия не имею, почему он не принимает JSON body.

Контроллер

public function createOrder(Request $request)
    {
      return $request->product_id;
    }

POST body | Raw JSON

{
    "product_id": 4
}

Ответ Ответ - пустой массив [] "

Я пытался чтобы распечатать $request, и я получил это как ответ

    POST /api/order/post HTTP/1.1
Accept:          application/json
Accept-Encoding: gzip, deflate, br
Authorization:   Bearer.{token}
Cache-Control:   no-cache
Connection:      keep-alive
Content-Length:  20
Content-Type:    
Cookie:          XSRF-TOKEN={Token}%3D%3D; laravel_session=%3D%3D
Host:            backend.host
User-Agent:      PostmanRuntime/7.22.0
Cookie: XSRF-TOKEN==={token}; laravel_session={Token}

{
    "product_id": 4
}

Тогда мое тело сообщения видно, поэтому я запутался, почему он не показывает

Что я ожидаю и что Я получаю

Я ожидаю, что запрос вернет значение моего JSON тела

что происходит, ничего не возвращается

примечание: я ' Я недавно добавил паспорт, но в прошлый раз, когда я использовал эту конечную точку после добавления laravel

Рабочий контроллер

 public function store(Request $request)
    {
      return $request;
    }

работал нормально Api маршруты

Route::post('order/create', 'OrderController@createOrder');
Route::post('product/create', 'ProductController@store');

1 Ответ

6 голосов
/ 15 марта 2020

Добавьте Content-Type:application/json, чтобы PHP понял, что он получает JSON. В настоящее время ваш Content-type выглядит пустым. Также убедитесь, что полученный CSRF-токен правильный.

...