【问题标题】:Cant create relationship in laravel migrations无法在 laravel 迁移中创建关系
【发布时间】:2020-05-08 01:10:24
【问题描述】:

我正在尝试在成员表中的“user_id”和用户表中的“id”之间建立关系。得到 errno: 150 “外键约束的格式不正确”。我在成员表之前迁移用户表。

$table->integer('user_id')->unsigned()->nullable();
   $table->foreign('user_id')->references('id')->on('users');

【问题讨论】:

  • 查看用户表id的域
  • 你试过unsignedBigInteger()吗?默认的 users 表迁移使用大 int 作为 ID,而不是普通的 int。

标签: laravel foreign-keys database-migration


【解决方案1】:

你的语法是正确的,所以它可能是几个问题之一:

  1. 您的users 表实际上并未称为users
  2. 您实际上是在用户迁移之前创建了成员迁移,然后返回并编辑了成员迁移。 Laravel 按照文件名中时间戳的顺序运行迁移,因此您需要编辑成员迁移的文件名,或者创建一个包含外键定义的新迁移。
  3. 您正试图在现有数据库之上运行现有迁移。运行php artisan migrate:refresh 将所有内容回滚并重新运行。 请注意,这会破坏所有您的数据,因此请确保它处于测试环境中。

【讨论】:

    猜你喜欢
    • 2020-04-13
    • 2018-03-06
    • 1970-01-01
    • 2020-12-16
    • 2021-08-18
    • 1970-01-01
    • 2016-12-07
    • 2012-11-12
    • 1970-01-01
    相关资源
    最近更新 更多