Quantcast
Channel: laravel5.8タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 87

laravelEloquentでMySQLのJSON型は配列として扱いたい

$
0
0

環境

laravel 5.8
MYSQL 5.7.26

問題

  • JSON型にjsonをそのままインサート出来ない
    • json_encodeしたデータを入れようとするとstringとして入る
  • jsonのまま使わないことの方が多いので、取得したデータをjson_dencodeなど加工したくない

解決

Eloquentモデルの $castsでインサートしたいカラムに arrayを設定。

protected$casts=['column'=>'array'];

保存

配列で保存出来るようになる

$record->column=[1=>'cat',2=>'dog'];$record->save();
保存結果
{"1":"cat","2":"dog"}

取得

配列で取得できる

$column=$record->column;// [1 => 'cat', 2 => 'dog']

おわり

この仕様を知らずに独自にミューテタなど設定していました。
Eloquentモデルは色んな事が出来すぎるので、注意したいです。


Viewing all articles
Browse latest Browse all 87

Trending Articles