コンテンツにスキップ

Top

Eloquent で boolean のデータを取得しても、 Javascript で true / false にならない

Vue から axios で laravel にアクセスし、 Eloquent 経由 で カラムの型が boolean のデータを取得したところ、 true / false になっていなかった。

どうも、テーブルでbooleanと指定しても、内部的に integerにされてしまうせいらしい。

ので、 Model で $casts を使って型を指定してあげなければならなかった。

以下みたいな感じで。

    protected $casts = [
        'result_flag' => 'boolean',
    ];

$cast は 予約語 で、この変数に値を入れることによって、このカラムはこの型だよ、と明示的に伝えることができる。
これで、int型からboolean型に正しく切り替わる。

...なんか、Laravelのバグな気がしないでもないんだけどね!

以上!