Php Laravel-返回json和http状态代码

Php Laravel-返回json和http状态代码,php,json,laravel,http-status-codes,Php,Json,Laravel,Http Status Codes,如果我返回一个对象: return Response::json([ 'hello' => $value ]); 状态代码为200。如何将其更改为201,并使用消息和json对象发送 我不知道是否有办法在Laravel中设置状态代码。您可以使用设置HTTP响应代码 如果未传递任何参数,则http_响应_代码将获取当前状态代码。如果您传递一个参数,它将设置响应代码 对于Laravel(参考自:): 这就是我在《拉威尔5》中的表现 return Response::json(['he

如果我返回一个对象:

return Response::json([
    'hello' => $value
]);
状态代码为200。如何将其更改为201,并使用消息和json对象发送

我不知道是否有办法在Laravel中设置状态代码。

您可以使用设置HTTP响应代码

如果未传递任何参数,则http_响应_代码将获取当前状态代码。如果您传递一个参数,它将设置响应代码

对于Laravel(参考自:):


这就是我在《拉威尔5》中的表现

return Response::json(['hello' => $value],201);
或使用辅助函数:

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

有多种方法

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

return response()->json(['hello' => $value], STATUS_CODE);
其中STATUS_CODE是要发送的HTTP状态代码。两者都是相同的

如果您使用的是Elount模型,那么默认情况下,simple return也会自动转换为JSON,如

return User::all();

我认为最好的做法是将您的回复置于单一控制之下,因此我找到了最正式的解决方案

response()->json([...])
    ->setStatusCode(Response::HTTP_OK, Response::$statusTexts[Response::HTTP_OK]);
名称空间
声明之后添加以下内容:

use Illuminate\Http\Response;

希望我的回答有帮助。

我更喜欢回答助手本人:

    return response()->json(['message' => 'Yup. This request succeeded.'], 200);

最好使用辅助功能而不是外观。从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
拉威尔7* 您不必指定JSON响应,因为它会自动转换为JSON

return response(['Message'=>'Wrong Credintals'], 400);

请记住,Symfony\Component\HttpFoundation\Response对http状态代码有自己的预定义常量,如果使用其他常量,则会将您的状态更改为接近它的状态。。。i、 e.如果您想设置状态449,您将始终获得状态500@Tushar如果我不想发回任何数据,只是一个200响应怎么办?是
response()->json([],200)是否适合这种情况?或者200是隐式的?+(201)这个答案保证了我晚上的安全:)
使用light\Http\Response
返回新的响应(['message'=>'test'],422)曾为me@timeNomad这两种方法的优缺点是什么?推荐哪一种?@DJC在第一种方法中,您将能够使用Response::多次,只加载一次。在第二个方法中,每次使用response()->(如果只使用一个,则没有问题)。谢谢,我正在寻找对此的引用。您是否碰巧有到其他可用响应名称的链接,例如201、400等,而不仅仅是200(HTTP_OK)?我试过用谷歌搜索,但还没找到!没有关系。。。找到了。以下是可能正在寻找它的任何其他人的完整列表:
    return response()->json(['message' => 'Yup. This request succeeded.'], 200);
//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
return response(['Message'=>'Wrong Credintals'], 400);