Laravel - Возвратите json наряду с кодом состояния HTTP

Если я возвращаю объект:

return Response::json([
    'hello' => $value
]);

код состояния будет 200. Как я могу изменить его на 201, с сообщением и отправить его с объектом json?.

Я не знаю, существует ли способ просто установить код состояния в Laravel.

62
задан 30 June 2015 в 09:35

6 ответов

Можно использовать http_response_code() для установки кода ответа HTTP.

, Если Вы не передаете параметров затем, http_response_code получит код текущего статуса. При передаче параметра, он установит код ответа.

http_response_code(201); // Set response status code to 201

Для Laravel (Ссылка от: https://stackoverflow.com/a/14717895/2025923):

return Response::json([
    'hello' => $value
], 201); // Status code here
95
ответ дан 31 October 2019 в 13:16

Это - то, как я делаю это в Laravel 5

return Response::json(['hello' => $value],201);

Или использовании функции помощника:

return response()->json(['hello' => $value], 201); 
52
ответ дан 31 October 2019 в 13:16

Я думаю, что это - лучшая практика для хранения ответа под единственным управлением, и поэтому я узнал самое официальное решение.

response()->json([...])
    ->setStatusCode(Response::HTTP_OK, Response::$statusTexts[Response::HTTP_OK]);

добавляют это после namespace объявление:

use Illuminate\Http\Response;
23
ответ дан 31 October 2019 в 13:16

Существует несколько путей

return \Response::json(['hello' => $value], STATUS_CODE);

return response()->json(['hello' => $value], STATUS_CODE);

, где STATUS_CODE является Ваш код состояния HTTP, Вы хотите отправить. Оба идентичны.

при использовании модели Eloquent, затем простой возврат также будет автоматический преобразованный в JSON по умолчанию как,

return User::all();
9
ответ дан 31 October 2019 в 13:16
return response(['title' => trans('web.errors.duplicate_title')], 422); //Unprocessable Entity

Hope мой ответ был полезен.

1
ответ дан 31 October 2019 в 13:16

Я предпочитаю помощника ответа сам:

    return response()->json(['message' => 'Yup. This request succeeded.'], 200);
0
ответ дан 31 October 2019 в 13:16

Другие вопросы по тегам:

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