W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
如果您想要某些屬性始終轉(zhuǎn)換成另一個數(shù)據(jù)類型, 您可以在模型中增加 casts 屬性。否則,您需要為每個屬性定義修改器,這樣會增加更多的時間開銷。這里有一個使用 casts 屬性的例子:
/**
* 需要被轉(zhuǎn)換成基本類型的屬性值。
*
* @var array
*/
protected $casts = [
'is_admin' => 'boolean',
];
現(xiàn)在當(dāng)你獲取 is_admin 屬性時始終會是布爾類型,甚至在數(shù)據(jù)庫中存儲的這個值是一個整型也會被轉(zhuǎn)換。其他支持的類型轉(zhuǎn)換值有: integer, real, float, double, string, boolean, object 和 array 。
如果您存儲的值是一個序列化的 JSON 時,那么 array 類型轉(zhuǎn)換將會非常有用。比如,您的數(shù)據(jù)表里有一個 TEXT 類型的字段存儲著序列化后的 JSON 數(shù)據(jù), 通過增加 array 類型轉(zhuǎn)換, 當(dāng)獲取這個屬性的時候會自動反序列化成 PHP 的數(shù)組:
/**
* 需要被轉(zhuǎn)換成基本類型的屬性值。
*
* @var array
*/
protected $casts = [
'options' => 'array',
];
現(xiàn)在,當(dāng)你使用 Eloquent 模型時:
$user = User::find(1);
// $options 是一個數(shù)組...
$options = $user->options;
// options 會自動序列化成 JSON...
$user->options = ['foo' => 'bar'];
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: