此问题在此处已有答案:
How to use foreignUuid in laravel 9(1个答案)
3天前关闭。
这些迁移文件如下:
用户迁移
Schema::create('users', function (Blueprint $table) {
$table->uuid('id');
$table->string('name');
$table->string('email')->unique();
$table->timestamps();
});
日志迁移
Schema::create('log', function (Blueprint $table) {
$table->uuid('id');
$table->boolean('statu');
$table->timestamps();
$table->foreign('id')->references('id')->on('users')->onDelete('cascade');
});
当我运行迁移时,它显示:
PDO异常错误::(“SQLSTATE[HY 000]:一般错误:1005 0x 1 m0n1x无法建立表格。log
(错误编号:150“外键约束的格式不正确”)”)
我也试过:
一个二个一个一个
但还是不行。
--我已经解决了这个问题
用户
Schema::create('users', function (Blueprint $table) {
$table->uuid('id')->primary();
$table->string('name');
$table->string('email')->unique();
$table->timestamps();
});
原木
Schema::create('log', function (Blueprint $table) {
$table->uuid('id')->primary();
$table->foreignUuid('user_id');
$table->boolean('statu');
$table->timestamps();
});
Schema::table('log', function($table) {
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
});
2条答案
按热度按时间zdwk9cvp1#
尝试添加到用户表:
这里没有任何内容向数据库表明id是主键。
然后,您应该将外键命名为“name_of_the_table”_id。对于您,它应该是:
最后,您可以添加:
完整的代码如下所示:
nwwlzxa72#
请使用$table-〉id();而不是$table-〉uuid('id');