2013-03-24 81 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; 
相關問題