Ho avuto lo stesso problema. Risolto il problema aggiungendo nullable
in campo:
Schema::create('table_name', function (Blueprint $table) {
...
$table->integer('some_id')->unsigned()->nullable();
$table->foreign('some_id')->references('id')->on('other_table');
...
});
Nota che dopo la migrazione tutte le righe esistenti avranno some_id = NULL
.
UPD :
Dato che Laravel 7 c'è un modo più breve per fare la stessa cosa:
$table->foreignId('some_id')->nullable()->constrained();
È anche molto importante che nullable
va PRIMA di constrained
.
Puoi trovare maggiori informazioni qui, nella documentazione ufficiale