私も同じ問題を抱えていました。 nullable
を追加して修正しました フィールドへ:
Schema::create('table_name', function (Blueprint $table) {
...
$table->integer('some_id')->unsigned()->nullable();
$table->foreign('some_id')->references('id')->on('other_table');
...
});
移行後、既存のすべての行にsome_id = NULL
が含まれることに注意してください。 。
UPD :
Laravel 7以降、同じことを行うためのより短い方法があります:
$table->foreignId('some_id')->nullable()->constrained();
nullable
であることも非常に重要です constrained
の前に移動します 。
詳細については、公式ドキュメント をご覧ください。