php - method - Laravel-Devuelve json junto con el código de estado http
request method laravel (6)
Si devuelvo un objeto:
return Response::json([
''hello'' => $value
]);
el código de estado será 200. ¿Cómo puedo cambiarlo a 201, con un mensaje y enviarlo con el objeto json?
No sé si hay una manera de configurar el código de estado en Laravel.
Así es como lo hago en Laravel 5
return Response::json([''hello'' => $value],201);
O usando una función auxiliar:
return response()->json([''hello'' => $value], 201);
Creo que es una mejor práctica mantener su respuesta bajo control único y por esta razón descubrí la solución más oficial.
response()->json([...])
->setStatusCode(Response::HTTP_OK, Response::$statusTexts[Response::HTTP_OK]);
agregue esto después de la declaración del
namespace
:
use Illuminate/Http/Response;
Hay muchas maneras
return /Response::json([''hello'' => $value], STATUS_CODE);
return response()->json([''hello'' => $value], STATUS_CODE);
donde STATUS_CODE es su código de estado HTTP que desea enviar. Ambos son idénticos
si está utilizando el modelo Eloquent, el retorno simple también se convertirá automáticamente en JSON de forma predeterminada como,
return User::all();
Prefiero el ayudante de respuesta yo mismo:
return response()->json([''message'' => ''Yup. This request succeeded.''], 200);
Puede usar
http_response_code()
para configurar el código de respuesta HTTP.
Si no pasa ningún parámetro, http_response_code obtendrá el código de estado actual. Si pasa un parámetro, establecerá el código de respuesta.
http_response_code(201); // Set response status code to 201
Para Laravel (Referencia de: https://.com/a/14717895/2025923 ):
return Response::json([
''hello'' => $value
], 201); // Status code here
return response([''title'' => trans(''web.errors.duplicate_title'')], 422); //Unprocessable Entity
Espero que mi respuesta haya sido útil.