laravel 屬性類型轉換$casts


屬性類型轉換

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

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


免責聲明!

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



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