Я попытался добавить ограничение внешнего ключа с помощью миграции. Миграция завершается без ошибок. Однако при проверке базы данных ограничение внешнего ключа не добавляется в таблицу. Другие вещи, указанные в миграции, работают нормально, за исключением ограничения FK.
Моя сводная таблица с FK:
Schema::create('book_author', function (Blueprint $table) {
$table->integer('book_id')->unsigned();
$table->integer('author_id')->unsigned();
$table->foreign('book_id')->references('id')->on('book')->onDelete('restrict')->onUpdate('cascade');
$table->foreign('author_id')->references('id')->on('author')->onDelete('restrict')->onUpdate('cascade');
$table->primary(['book_id','author_id']);
});
Schema::enableForeignKeyConstraints();
Авторская таблица:
Schema::create('author', function (Blueprint $table) {
$table->increments('id');
$table->string('email', 250)->unique();
});
Книжный стол:
Schema::create('book', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
});
Есть ли что-то, что мне здесь не хватает?
SHOW TABLE STATUS WHERE Name = 'book_author'
и проверьте, какой движок у вашей таблицы. - person Felippe Duarte   schedule 20.01.2017