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.
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
C'est comme ça que je le fais à Laravel 5
return Response::json(['hello' => $value],201);
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;
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();
return response(['title' => trans('web.errors.duplicate_title')], 422); //Unprocessable Entity
J'espère que ma réponse a été utile.