Laravel-retour json avec le code de statut http

si je renvoie un objet:

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

le code d'état 200. Comment puis-je le changer à 201, avec un message et l'envoyer avec l'objet json?.

Je ne sais pas s'il y a un moyen de simplement définir le code de statut dans Laravel.

40
demandé sur Tushar 2015-06-30 09:30:53

5 réponses

Vous pouvez utiliser http_response_code() pour définir le code de réponse HTTP.

si vous ne passez aucun paramètre, http_response_code obtiendra le code d'état courant. Si vous passez un paramètre, il fixe le code de réponse.

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

pour Laravel(référence de:https://stackoverflow.com/a/14717895/2025923):

return Response::json([
    'hello' => $value
], 201); // Status code here
68
répondu Tushar 2017-05-23 12:34:50

C'est comme ça que je le fais à Laravel 5

return Response::json(['hello' => $value],201);
33
répondu Jeremy C. 2015-06-30 06:38:13

je pense que c'est une meilleure pratique de garder votre réponse sous contrôle unique et pour cette raison j'ai trouvé la solution la plus officielle.

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

ajouter cet après namespace déclaration:

use Illuminate\Http\Response;
13
répondu TKoutsou 2016-10-31 13:42:45

Il y a plusieurs façons

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

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

où STATUS_CODE est votre code de statut HTTP que vous voulez envoyer. Les deux sont identiques.

si vous utilisez le modèle éloquent, alors simple return sera aussi auto converti en JSON par défaut comme,

return User::all();
6
répondu iSensical 2017-09-29 14:34:21
return response(['title' => trans('web.errors.duplicate_title')], 422); //Unprocessable Entity

J'espère que ma réponse a été utile.

-1
répondu Mikayel Margaryan 2018-05-08 15:08:00