我在表中设置外键。当我尝试运行它时,出现错误。
我的迁移:
Schema::create('products', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->integer('user_id')->unsigned();
$table->integer('camera');
$table->integer('weight');
$table->integer('price');
$table->string('barcode');
$table->date('Production_at');
$table->timestamps();
$table->foreign('user_id')
->references('id')
->on('users')
->onDelete('cascade')
->onUpdate('cascade');
});
错误:
Illuminate\Database\QueryException : SQLSTATE[HY000]: General error: 1005 Can't create table `phoneshop`.`#sql-1e8_70` (errno: 150 "Foreign key constraint is incorrectly formed") (SQL: alter table `products` add constraint `products_user_id_foreign` foreign key (`user_id`) references `users` (`id`) on delete cascade on update cascade)
答案 0 :(得分:0)
确保在user_id
迁移和products
迁移表中的users
上具有匹配类型。
默认情况下,laravel users
表使用bigIncrements
,因此您必须使用bigInteger
作为列类型。