将 laravel morpth 迁移字段更改为可为空

问题描述 投票:0回答:1

我想将 Laravel 中已存在的 morph 字段更改为可为空。

public function up()
{
    Schema::table('table', function (Blueprint $table) {
        $table->nullableMorphs('cartable')->change();
    });
}

public function down()
{
    Schema::table('table', function (Blueprint $table) {
         $table->morphs('cartable')->change();
    });
}

我收到错误

Call to a member function change() on null
,有人知道如何做到这一点吗?

php laravel migration
1个回答
0
投票

Laravel 的架构构建器不支持直接修改 morphs 字段。您需要手动更改构成 morphs 字段的每一列。

public function up()
{
    Schema::table('table', function (Blueprint $table) {
        $table->unsignedBigInteger('cartable_id')->nullable()->change();
        $table->string('cartable_type')->nullable()->change();
    });
}

public function down()
{
    Schema::table('table', function (Blueprint $table) {
        $table->unsignedBigInteger('cartable_id')->nullable(false)->change();
        $table->string('cartable_type')->nullable(false)->change();
    });
}

注意:变形字段通常由两列组成:ID 列和类型列。

© www.soinside.com 2019 - 2024. All rights reserved.