はじめに
こんばんは。 今回も簡単な laravelの備忘録です。
最近はphp8.1のenumを使うパターンをよく使う事が増えてきたのですが、laravelでは $casts
でenumをセットしてくれるようになってるみたいなのでやってみました。
本題
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
だったり 自力で実装したりする必要があるのですが、便利な時代になりましたね。
現場からは以上です。