在 laravel 迁移中设置默认空数组

Set default empty array in laravel migration

我想为列兴趣设置空数组。我已将字段添加为 json 并将其转换为模型中的数组。以下是我的代码片段:

/**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('db_invitations', function (Blueprint $table) {
            if(!Schema::hasColumn('db_invitations','interests')){
                $table->json('interests');
            }
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('db_invitations', function (Blueprint $table) {
            if(Schema::hasColumn('db_invitations','interests')){
                $table->dropColumn('interests');
            }
        });
    }

也在模型中:

/**
     * The attributes that should be cast to native types.
     *
     * @var array
     */
    protected $casts = [
        'interests' => 'array'
    ];

那么我需要做什么才能在兴趣栏中显示默认 []?

json 数据类型在 MySQL 中不能有默认值 。请改用 $attributes

/**
 * The attributes that should be cast to native types.
 *
 * @var array
 */
protected $casts = [
    'interests' => 'array',
];

protected $attributes = [
    'interests' => [],
];