如何在Eloquent中定义和使用JSON数据类型?

时间:2015-09-03 08:52:25

标签: laravel-5 eloquent postgresql-9.1 laravel-5.1

如何定义Laravel 5中JSON中提供的pgsql 9.4数据类型?

我需要定义数据类型,存储和获取数据,到目前为止还无法找到在Laravel 5.1中处理它的方法

2 个答案:

答案 0 :(得分:46)

在您的迁移中,您可以执行以下操作:

$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的相关答案

答案 1 :(得分:6)

根据Laravel文档,'json'不是可用的类型之一。 https://laravel.com/docs/5.1/eloquent-mutators

您应该使用'array'代替:

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