Laravel 8 屬性類型轉換

2021-07-19 11:44 更新

模型中的 $casts 屬性提供了一個便利的方法來將屬性轉換為常見的數據類型。$casts 屬性應是一個數組,且數組的鍵是那些需要被轉換的屬性名稱,值則是你希望轉換的數據類型。支持轉換的數據類型有:integerreal,float,double,decimal:<digits>,string,booleanobject,array,collection,date,datetimetimestamp。當需要轉換為 decimal 類型時,你需要定義小數位的個數,如:(decimal:2)。

示例,讓我們把以整數 (01) 形式存儲在數據庫中的 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 的屬性將不會被強制轉換。另外,永遠不要定義與關系(或屬性)同名的強制轉換。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號