如何以JSON形式返回一個Eloquent模型到瀏覽器?下面兩種方法有什麼區別?兩者似乎都有效。在Laravel 4中返回一個Eloquent模型作爲JSON
#1:
return Response::json($user->toArray());
#2:
return $user->toJson();
如何以JSON形式返回一個Eloquent模型到瀏覽器?下面兩種方法有什麼區別?兩者似乎都有效。在Laravel 4中返回一個Eloquent模型作爲JSON
#1:
return Response::json($user->toArray());
#2:
return $user->toJson();
Response::json($someArray)
是返回JSON數據的通用方式。
return $model->toJson()
特定於將模型作爲JSON返回。在使用Eloquent模型時,這將是我首選的方法。
在#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
發送的實際數據是一樣的,但是...
#1發送Content-Type:application/json
到瀏覽器
#2發送Content-Type:text/html
#1更正確,但取決於您的Javascript,請參閱:What is the correct JSON content type?
但是,返回模型要簡單得多。它是自動返回JSON和內容類型設置正確:
return $model;
這似乎跟我說:'響應內容必須是一個字符串或對象實現__toString(),「布爾」 given.' – uruapanmexicansong 2017-08-16 17:36:10