Laravel – возвращает json вместе с кодом статуса http

Если я верну объект:

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

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

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

Вы можете использовать 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 

Вот как я это делаю в Laravel 5

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

Я считаю, что лучше всего держать свой ответ под единым контролем, и по этой причине я нашел наиболее официальное решение.

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

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

 use Illuminate\Http\Response; 

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

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

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

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

 return User::all();