170

現在、テーブルに特定の列を作成するための移行を書いていますnullablenot nullabledown 関数については、もちろん、それらの列をもう一度作成したいと思います。スキーマ ビルダーのドキュメントを調べましたが、これを行う方法がわかりませんでした。

どんな助けでも大歓迎です。

4

5 に答える 5

292

Laravel 5 より前は、スキーマ ビルダーを使用して既存のテーブル列を変更する Laravel ネイティブの方法はありませんでした。これには生のクエリを使用する必要があります。

ただし、Laravel 5 以降では以下を使用できます。

$table->string('foo')->nullable(false)->change();

上記のコマンドを実行する前に、dbal 依存関係が必要です。

composer require doctrine/dbal
于 2012-12-24T00:36:17.173 に答える
51

Laravel 5 では、引数として false を渡すことで、これを逆にすることができますnullable

$table->string('foo')->nullable(false)->change();
于 2016-01-11T18:18:32.057 に答える
9

最初にこれを実行します:

composer require doctrine/dbal

次に、次のようにテーブルを変更する移行を作成します。

php artisan make:migration fix_whatever_table_name_here

public function up()
{
    Schema::table('table_name', function (Blueprint $table) {
        $table->type('column')->nullable(false)->change();
    });
}

# Optional:
# public function down()
# {
#     Schema::table('table_name', function ($table) {
#         $table->type('column')->nullable()->change();
#     });
# }
于 2018-07-30T20:56:30.460 に答える