オブジェクトを返す場合:
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
response()->json([], 200);
目的のための適合は、このような状況では?それとも200は暗黙的ですか?
use Illuminate\Http\Response;
そしてreturn new Response(['message' => 'test'], 422);
私のために働いた
これが私がLaravel5でそれを行う方法です
return Response::json(['hello' => $value],201);
またはヘルパー関数を使用する:
return response()->json(['hello' => $value], 201);
私はあなたの応答を単一の制御下に保つことがより良い習慣であると思います、そしてこの理由で私は最も公式な解決策を見つけました。
response()->json([...])
->setStatusCode(Response::HTTP_OK, Response::$statusTexts[Response::HTTP_OK]);
namespace
宣言後にこれを追加します。
use Illuminate\Http\Response;
return response(['title' => trans('web.errors.duplicate_title')], 422); //Unprocessable Entity
私の答えがお役に立てば幸いです。
ファサードよりもヘルパー関数を使用することをお勧めします。このソリューションは、Laravel5.7以降でうまく機能します
//import dependency
use Illuminate\Http\Response;
//snippet
return \response()->json([
'status' => '403',//sample entry
'message' => 'ACCOUNT ACTION HAS BEEN DISABLED',//sample message
], Response::HTTP_FORBIDDEN);//Illuminate\Http\Response sets appropriate headers