エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

【Laravel】データベースから取り出したデータを、型変換してから取り出したい【183日目】

値を取り出す時に、事前キャストしたい

ユーザーが管理者のときに○○したいという時に、以下のようにコードを書きたい

$user = new User('uiro');
if($user->is_admin === true) {
    ....
}

でも、データベースから取得した$userは0,1で is_adminが入ってる・・・そんなとき

$castで事前にキャスト

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    /**
     * ネイティブなタイプへキャストする属性
     *
     * @var array
     */
    protected $casts = [
        'is_admin' => 'boolean',
    ];
}

$castにキー配列で、キャストしたい型を書いておけば、データ取得時にキャストしてからデータを取り出すことができる

公式ドキュメント

Eloquent:ミューテター 5.1 Laravel