オブジェクトを返す場合:
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/202592 ):
return Response::json([
'hello' => $value
], 201); // Status code here
これがLaravel 5でのやり方です。
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::json(['hello' => $value], STATUS_CODE);
return response()->json(['hello' => $value], STATUS_CODE);
sTATUS_CODEは、送信するHTTPステータスコードです。両方とも同じです。
eloquentモデルを使用している場合、単純な戻り値も jSONに自動変換 デフォルトでは、
return User::all();
return response(['title' => trans('web.errors.duplicate_title')], 422); //Unprocessable Entity
私の答えがお役に立てば幸いです。
正しい応答コードを応答として送信する適切な方法を次に示します
return http_response_code();
私は自分で応答ヘルパーを好みます:
return response()->json(['message' => 'Yup. This request succeeded.'], 200);