2013-03-24 79 views

回答

9

Response::json($someArray)是返回JSON数据的通用方式。

return $model->toJson()特定于将模型作为JSON返回。在使用Eloquent模型时,这将是我首选的方法。

10

在#1中,您首先将您的Eloquent转换为数组,然后将其转换为JSON,这似乎有点多余。

考虑到这一点,如果您将JSON返回给调用者,我会使用#2。

另请注意,在L4中,只要将Eloquent模型转换为字符串,它就会自动转换为JSON。因此,你可以在这个例子不喜欢从文档直接从您的路线返回JSON数据:

Route::get('users', function() 
{ 
    return User::all(); 
}); 

欲了解更多信息,请参阅http://four.laravel.com/docs/eloquent#converting-to-arrays-or-json

+0

这似乎跟我说:'响应内容必须是一个字符串或对象实现__toString(),“布尔” given.' – uruapanmexicansong 2017-08-16 17:36:10

33

发送的实际数据是一样的,但是...

#1发送Content-Type:application/json到浏览器

#2发送Content-Type:text/html

#1更正确,但取决于您的Javascript,请参阅:What is the correct JSON content type?

但是,返回模型要简单得多。它是自动返回JSON和内容类型设置正确:

return $model; 
相关问题