Я делаю свой стол вот так ...
Schema::create('matched_merchants', function (Blueprint $table)
{
$table->increments('id')->unsigned();
$table->integer('merchant_id')->unsigned();
$table->integer('offer_id')->unsigned();
$table->foreign('merchant_id')->references('id')->on('merchants')->onUpdate('cascade')->onDelete('restrict');
$table->foreign('offer_id')->references('id')->on('offers')->onUpdate('cascade')->onDelete('restrict');
});
Я добавляю 2 внешних ключа, оба имеют ограничения onUpdate и onDelete, но добавляется только ограничение обновления.
Если я удалю onUpdate, он правильно добавит ограничение onDelete.
Я не могу добавить их отдельно, потому что получаю ошибку дубликата ключа.
Я мог бы добавить их вручную с помощью необработанного оператора SQL, но если есть правильный способ сделать это, id, скорее, сделайте это.