Měl jsem stejný problém. Opraveno přidáním nullable
do pole:
Schema::create('table_name', function (Blueprint $table) {
...
$table->integer('some_id')->unsigned()->nullable();
$table->foreign('some_id')->references('id')->on('other_table');
...
});
Všimněte si, že po migraci budou mít všechny existující řádky some_id = NULL
.
UPD :
Od Laravelu 7 existuje kratší způsob, jak udělat totéž:
$table->foreignId('some_id')->nullable()->constrained();
Je také velmi důležité, aby bylo možné nullable
jde PŘED constrained
.
Další informace naleznete zde, v oficiální dokumentaci