Проблема обычно возникает при переходе на новые версии Laravel, которые используют bigIncrements
вместо increments
при определении первичных ключей в схеме.Также вам необходимо определить тип внешнего ключа перед определением отношения внешнего ключа.
Исправление состоит в том, чтобы определить тип внешнего ключа, а затем определить отношение внешнего ключа, например:
Schema::table('chatter_discussion', function (Blueprint $table) {
// first define the type of the foreign keys in the schema
$table->bigInteger('chatter_category_id')->unsigned(); // the id of the chatter category
$table->bigInteger('user_id')->unsigned(); // the id of the user
/*
or use:
$table->integer('chatter_category_id');
$table->integer('user_id');
if using older versions of laravel, whatever works
*/
// THEN define foreign key relations
$table->foreign('chatter_category_id')->references('id')->on('chatter_categories')
->onDelete('cascade')
->onUpdate('cascade');
$table->foreign('user_id')->references('id')->on('users')
->onDelete('cascade')
->onUpdate('cascade');
});
Аналогично для других таблиц, которые ссылаются на внешние ключи
ПРИМЕЧАНИЕ , в вашем примере вы не определяете столбец id
в таблице chatter_discussion
, на который затем ссылаются в chatter_post
.Не уверен, что вы пропустили или определены в предыдущей миграции.