【Laravel】ORMを用いた、JSON型のカラムに対しての検索条件記述方法


メモとして残します。

細かい機能レベル権限をJSON型カラムを用意してjson形式でDB管理。
whereで検索しようとしたときに、「どうやって検索するんだ?」となったため、メモ。

■前提

EroquentモデルでテーブルにJSON型のカラムをメンバ変数$castsにjson型で扱うように定義。

class User extends Model
{
    protected $casts = [
        'JSON型のカラム名' => 'json', //jsonでなく、確かarrayでも可
    ];
}

■やり方

$user = User::where('JSON型のカラム名->hogehoge', "条件")
            ->get();