Jag hade samma problem. Fixade det genom att lägga till nullable
till fält:
Schema::create('table_name', function (Blueprint $table) {
...
$table->integer('some_id')->unsigned()->nullable();
$table->foreign('some_id')->references('id')->on('other_table');
...
});
Observera att efter migreringen kommer alla befintliga rader att ha some_id = NULL
.
UPD :
Sedan Laravel 7 finns det mer kort väg att göra samma sak:
$table->foreignId('some_id')->nullable()->constrained();
Det är också mycket viktigt att nullable
går INNAN constrained
.
Mer information hittar du här, i officiell dokumentation