Response::json和隐含json之间有区别吗


Is there a difference between Response::json and implied json?

在Laravel 4中,我可以使用return Response::json( $model );创建JSON响应。默认情况下,我也可以简单地执行return $model;

与隐式调用$model->toJson()相比,使用Response::json有什么好处吗?

我相信当您使用return Response::json()时,它也会设置返回标头,可能是Content-type: text/javascript

这样,调用脚本在开始读取返回体之前就知道它正在返回javascript。有时,运行函数的脚本可能会有不同的行为,或者根据返回的内容类型对响应体进行不同的解析。

返回return $model应该返回一个具有大量内置功能的集合。$model->toJson()将把它剥离为一个json文件。

编辑:我的回答是将模型返回到控制器,而不是渲染。发送到渲染器时,我相信Response::json$model->toJson()都做相同的事情,但Response::json用于不在集合中的数据。

一些有助于收集功能的资源:

http://laravel.com/docs/4.2/eloquent#collections

https://laracasts.com/lessons/arrays-on-steroids