もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

laravelのcastsでenumをセットする

はじめに

こんばんは。 今回も簡単な laravelの備忘録です。

最近はphp8.1のenumを使うパターンをよく使う事が増えてきたのですが、laravelでは $castsenumをセットしてくれるようになってるみたいなのでやってみました。

本題

laravel.com

Enum

<?php

namespace App\Models\Enums;

enum Status: int
{
    case REQUESTING = 1;
    case REJECT = 2;
    case ACCEPT = 3;
}

Eloquent

<?php

namespace App\Models;

use App\Models\Enums\Status;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    protected $fillable = [
        'id',
        'status',
        'name',
    ];

    protected $casts = [
        'status' => Status::class, // Enumをセット
    ];
}

上記のコードでセットしてくれるようになる。

終わりに

php8.1以前だとenumがないから SplEnum だったり 自力で実装したりする必要があるのですが、便利な時代になりましたね。

現場からは以上です。