屬性類型轉換
模型中的 $casts 屬性提供了一個便利的方法來將屬性轉換為常見的數據類型。$casts 屬性應是一個數組,且數組的鍵是那些需要被轉換的屬性名稱,值則是你希望轉換的數據類型。支持轉換的數據類型有:integer,real,float,double,decimal:
示例,讓我們把以整數 (0 或 1) 形式存儲在數據庫中的 is_admin 屬性轉成布爾值:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
/**
* 強制轉換的屬性
*
* @var array
*/
protected $casts = [
'is_admin' => 'boolean',
];
}
現在當你訪問 is_admin 屬性時,雖然保存在數據庫里的值是一個整數類型,但是返回值總是會被轉換成布爾值類型:
$user = App\Models\User::find(1);
if ($user->is_admin) {
//
}
注意:為 null 的屬性將不會被強制轉換。另外,永遠不要定義與關系(或屬性)同名的強制轉換。