web-dev-qa-db-ja.com

EloquentでJSONデータ型を定義して使用するには?

Laravel 5?でpgsql 9.4で提供されるJSONデータ型を定義するにはどうすればよいですか?

データ型を定義し、データを保存および取得する必要がありますが、これまでのところLaravel 5.1

25
Volatil3

移行では、次のようなことができます。

$table->json('field_name');

そして、モデルで$castsプロパティにフィールドを追加して、EloquentにJSONからPHP配列にデシリアライズするように指示します:

class SomeModel extends Model
{
    protected $casts = [
        'field_name' => 'array'
    ];
}

ソース: https://laravel.com/docs/5.1/eloquent-mutators#attribute-casting

注:これは、Laravel 5.6

54
Helder Lucas

Laravelドキュメンテーションによると、「json」はキャスト可能なタイプの1つではありません。 https://laravel.com/docs/5.1/eloquent-mutators

代わりに 'array'を使用する必要があります。

class SomeModel extends Model
    {
        protected $casts = [
            'field_name' => 'array'
        ];
    }
8
Roger