Проблема
Вы неправильно настраиваете unsigned
.
Решение
Замените:
$table->bigInteger('user_id')->unsigned;
По:
$table->bigInteger('user_id')->unsigned();
Пояснение
Поскольку user_id
не является беззнаковым, определение не соответствует id
таблицы users
, что означает, что вы не можете установить внешний ключ.
До Laravel 7.x
Вы также можете сделать:
$table->unsignedBigInteger('user_id');
Laravel 7.x
Начиная с Laravel 7, вы можете сделать это как в вашей users
миграции:
Schema::table('users', function (Blueprint $table) {
$table->id();
// ...
});
И в вашей images
миграции:
Schema::table('users', function (Blueprint $table) {
// ...
$table->foreignId('user_id')->constrained();
});
Вы можете найти больше информации здесь: https://laravel.com/docs/7.x/migrations#foreign - ключевые ограничения