在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