laravel - 无法在 laravel 迁移中创建关系
问题描述
我正在尝试在成员表中的“user_id”和用户表中的“id”之间建立关系。得到 errno: 150 “外键约束的格式不正确”。我在成员表之前迁移用户表。
$table->integer('user_id')->unsigned()->nullable();
$table->foreign('user_id')->references('id')->on('users');
解决方案
您的语法是正确的,因此它可能是几个问题之一:
- 您的
users
表实际上并未被调用users
。 - 您实际上是在用户迁移之前创建了成员迁移,然后返回并编辑了成员迁移。Laravel 按照文件名中时间戳的顺序运行迁移,因此您需要编辑成员迁移的文件名,或者创建一个包含外键定义的新迁移。
- 您正在尝试在现有数据库之上运行现有迁移。运行
php artisan migrate:refresh
以将所有内容回滚并重新运行。请注意,这会破坏您的所有数据,因此请确保它处于测试环境中。
推荐阅读
- c - C中的运行长度编码,strcat的问题
- python - 使用 SQLAlchemy Core 选择多行中的第一行
- c# - 交叉引用列表中属于特定偏差Vision OCR c#的多个值
- karate - 检查数组是否仅包含一个对象,该对象包含提供的键子集
- hyperledger-fabric - 无法使用 Hyperledger Fabric 网络调用节点应用程序中的事务?
- javascript - 如何使用 cookie 在 TiddlyWiki 中设置用户名
- javascript - Axios Instance 类中的取消请求
- angularjs - 如何在angularjs中设置和获取其他文件的值
- c# - 如何从以下给定标签中检索值
- jquery - 如何在 Polymer 中使用 jQuery DOM 元素选择器?