【问题标题】:relationships in Laravel tables no idLaravel 表中的关系没有 id
【发布时间】:2022-08-17 08:38:11
【问题描述】:

我有两张桌子 A 和 B 表 A 包含 site 字段,表 B 包含 site_id 字段 我需要通过表 A 中的站点字段链接这两个表。

            $table->bigInteger(\"site_id\")->unsigned()->index();
            $table->foreign(\'site_id\')
                ->references(\'site\')
                ->on(\'data_args\')
                ->onDelete(\'cascade\');

收到此错误 - MySQL 错误 1215:无法添加外键约束

  • 最好创建Sites 表并将其连接到A 表。然后你可以将A连接到Sites。始终尝试使用编码标准,遵循原则并保持数据库结构良好。

标签: php mysql laravel migration


【解决方案1】:

两个字段主键和外键应该是相同的数据类型 site_id 是大整数,另一个表的主键应该是大整数

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
【解决方案2】:

假设表具有以下字段:
table_a = (id, 描述)
table_b = (id, site_id, site_field)

然后你想连接table_atable_b,依此类推table_b

$table->unsignedBigInteger('site_id')->nullable(false);
$table->foreign('site_id')->references('id')->on('table_a');

使用unsignedBigInteger() 而不是bigInteger()->unsigned()

references = 要引用的字段
on = 表名

【讨论】:

    猜你喜欢
    • 2021-06-19
    • 2021-04-05
    • 1970-01-01
    • 2020-05-31
    • 2021-09-14
    • 2021-01-20
    • 2019-07-20
    • 1970-01-01
    • 2017-09-20
    相关资源
    最近更新 更多