객체를 반환하면 :
return Response::json([
'hello' => $value
]);
상태 코드는 200이됩니다. 메시지와 함께 201로 변경하고 json 객체와 함께 보내려면 어떻게해야합니까?
라 라벨에서 상태 코드를 설정하는 방법이 있는지 모르겠습니다.
답변:
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);
나를 위해 일했습니다
이것이 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;
그것은 함께 할 것이 낫다 도우미 기능 보다는 외관 . 이 솔루션은 Laravel 5.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