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

How to define and use JSON data type in Eloquent?

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

我需要定义数据类型、存储和获取数据,但目前在 Laravel 5.1

中找不到处理它的方法

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

$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

的相关答案

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

您应该改用 'array':

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

对于要 JSON 转换的对象

class YourModel extends Model
{
    protected $casts = [
        'table_column_name' => 'object'
    ];
}

对于数组到JSON 铸造

 class YourModel extends Model
{
    protected $casts = [
        'table_column_name' => 'array'
    ];
}