我想在我的laravel 7. x应用程序上使用两个模型:用户和图像:
# Users migration : 2014_10_12_000000_create_users_table.php
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
# Images migration : 2020_03_27_121254_create_models_images_table
Schema::create('images', function (Blueprint $table) {
$table->bigIncrements('id');
$table->bigInteger('user_id')->unsigned;
$table->string('name');
$table->timestamps();
});
Schema::table('images', function (Blueprint $table) {
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
});
尝试迁移时,我收到以下错误:一般错误:1215无法添加外键约束(SQL:alter tableimages
add constraint
images\u user\u id\u foreign
外键(user\u id
)引用
我已经在谷歌上搜索过了,但没有成功,有人能帮我吗?
谢谢你
您在unsiged()中缺少括号
根据Laravel文档
<代码>-
改变
$table->bigInteger('user_id')->unsigned;
到
$table->bigInteger('user_id')->unsigned();
未正确设置未签名的代码。
替换:
$table->bigInteger('user_id')->unsigned;
通过:
$table->bigInteger('user_id')->unsigned();
由于user_id
不是无符号的,因此定义与user
表的id
不匹配,这意味着您无法设置外键。
您还可以这样做:
$table->unsignedBigInteger('user_id');
从Laravel 7开始,您可以在迁移用户时这样做:
Schema::table('users', function (Blueprint $table) {
$table->id();
// ...
});
在您的迁移图像中:
Schema::table('users', function (Blueprint $table) {
// ...
$table->foreignId('user_id')->constrained();
});
您可以在此处找到更多信息:https://laravel.com/docs/7.x/migrations#foreign-关键约束条件
我正在尝试使用artisan创建外键,但出现了此错误。 这是我的迁移: 在批次表中,我使用作为it模型批次。我补充说: 知道如何解决这个错误吗?
我正在尝试使用Laravel 5.8为“users”表创建外键。 Laravel 5.8自动生成的迁移表如下, 然后从我的“存储库”表中,我引用了“用户”表,如下所示, 但我在这段代码上遇到了“一般错误:1215无法添加外键约束”错误。有许多与此问题相关的解决方案。 一般错误:1215无法在laravel中添加外键约束 迁移:无法在laravel中添加外键约束 MySQL数据库发生Laravel迁
试图分配外键,但当你运行迁移,我得到这个这个错误,我不明白是什么问题。 SQLSTATE[HY000]:一般错误:1215无法添加外键约束(SQL:alter table
我有多个迁移,但我认为与这个问题相关的两个迁移是“作业”和“会话”迁移。 作业迁移
问题内容: 我正在尝试将新模式转发工程到我的数据库服务器上,但是我不知道为什么会收到此错误。我试图在这里搜索答案,但是我发现的所有内容都说是将db引擎设置为Innodb或确保要用作外键的键是它们自己表中的主键。如果我没记错的话,我都做过这两件事。你们还有其他帮助吗? SQL脚本执行完成:语句:成功7次,失败1次 这是父表的SQL。 问题答案: 我猜,和/或不完全相同的数据类型和。 也许父表中的
引用的表是“组”(InnoDB)。 它有一个“id”列,定义为INT(11),不可为空,自动递增,主键 引用表为“用户(InnoDB)” 它的group_id列定义为INT(11),不可为空。 在引用表中已经存在一个基于“group_id”列的唯一索引 但是whn正在执行 我出错了 错误:1215无法添加外键约束 我添加db转储 检查清单 Db是InnoDB吗?是的 所有表都是InnoDB吗?是的