编辑:已解决,我忘记了uuid字段上->primary()
上的括号。
我正在尝试将我的应用程序从增加ID切换到uuid。目前,我仅在create_users_table
上切换为uuid。第一个具有指向我的用户表的外键的表是create_groups_table
,当我尝试运行迁移时,我的外键约束失败。
我为外键尝试了不同的值,但无济于事。
这是相关的代码。
create_users_table:
Schema::create('users', function (Blueprint $table) {
$table->uuid('id')->primary;
$table->string('name');
$table->string('email')->unique();
$table->timestamps();
});
create_groups_table:
Schema::create('groups', function (Blueprint $table) {
$table->uuid('id')->primary();
$table->string('title');
$table->uuid('user_id')->nullable();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->timestamps();
});
我希望迁移能够运行,但是我得到:
Illuminate\Database\QueryException : SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint (SQL: alter table `groups` add constraint `groups_user_id_foreign` foreign key (`user_id`) references `users` (`id`) on delete cascade)
任何帮助将不胜感激
答案 0 :(得分:0)
我在uuid字段的->primary()
上忘记了括号:
Schema::create('users', function (Blueprint $table) {
$table->uuid('id')->primary();
$table->string('name');
$table->string('email')->unique();
$table->timestamps();
});