Laravel json 响应:response()->json() 或 $var->toJson()

Posted

技术标签:

【中文标题】Laravel json 响应:response()->json() 或 $var->toJson()【英文标题】:Laravel json response: response()->json() or $var->toJson() 【发布时间】:2017-04-19 06:55:49 【问题描述】:

我的 API 使用 Laravel(实际上是 Lumen)。我创建了一个 User 模型,并使用它来检索我的所有用户:

$users = User::all()

现在我想将它作为 json 返回,但是当我阅读 Laravel 网站时,我看到了两个选项。哪个最好,为什么,有什么区别?

return response()->json($users) (如here所述)

return $users->toJson() (如here所述)

【问题讨论】:

【参考方案1】:

使用return response()->json($users);

只有return response()->json() 是真正的http 响应,标题为content-type: application/json

return $user->toJson() 只是以 json 格式回显一个字符串。内容类型为 text/html

【讨论】:

【参考方案2】:

实际上 laravel 开箱即用。这样做:

return $users;

laravel 会处理这些并以 json 格式返回您的模型集合。

【讨论】:

以上是关于Laravel json 响应:response()->json() 或 $var->toJson()的主要内容,如果未能解决你的问题,请参考以下文章

response()->json 无法在 Laravel 中解码 [关闭]

Laravel Response::json() 带数字检查

在 Laravel5 中调用未定义的方法 Illuminate\Http\Response::json()

laravel4 响应::json(array());不适用于托管

Laravel/Eloquent 规范化 JSON 响应的关系?

使用Laravel测试JSON响应