laravel獲取的數據轉換為數組


當構建 JSON API 時,您可能常常需要把模型和關聯對象轉換成數組或JSON。所以Eloquent里已經包含了這些方法。要把模型和已載入的關聯對象轉成數組,可以使用 toArray方法:

$user = User::with('roles')->first();
return $user->toArray();
注意:也可以把整個的模型集合轉換成數組:
return User::all()->toArray();
將模型轉換成 JSON

要把模型轉換成 JSON,可以使用 toJson 方法:

return User::find(1)->toJson();
從路由中返回模型

注意當模型或集合被轉換成字符串類型時會自動轉換成 JSON 格式,這意味着您可以直接從路由返回 Eloquent 對象!

Route::get('users', function()
{
return User::all();
});
轉換成數組或 JSON 時隱藏屬性

有時您可能想要限制能出現在數組或 JSON 格式的屬性數據,比如密碼字段。只要在模型里增加 hidden 屬性即可

class User extends Model {
protected $hidden = ['password'];
}
注意: 要隱藏關聯數據,要使用關聯的方法名稱,而不是動態獲取的屬性名稱。
此外,可以使用 visible 屬性定義白名單:

protected $visible = ['first_name', 'last_name'];
有時候您可能想要增加不存在數據庫字段的屬性數據。這時候只要定義一個獲取器即可:

public function getIsAdminAttribute()
{
return $this->attributes['admin'] == 'yes';
}
定義好獲取器之后,再把對應的屬性名稱加到模型里的 appends 屬性:

protected $appends = ['is_admin'];
把屬性加到 appends 數組之后,在模型數據轉換成數組或 JSON格式時就會有對應的值。在 appends數組中定義的值同樣遵循模型中 visible和 hidden的設定

  

原文地址:http://wenda.golaravel.com/question/1663


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM