gpt4 book ai didi

php - Laravel 中的关系 0...1

转载 作者:行者123 更新时间:2023-12-05 05:13:22 24 4
gpt4 key购买 nike

我有 2 个模型:产品和类别,其中每个产品属于一个类别(或无)

然后我虽然在产品表中放了一个“category_id”。但 category_id 可以为空。

在 Laravel 中:

Schema::create('products', function (Blueprint $table) {
$table->unsignedInteger('category_id')->default(0);
$table->foreign('category_id')->references('id')->on('categories');

但是当我需要将类别更改为 NULL (0) 时,我得到错误:

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails 

我该如何修复?

最好的问候

最佳答案

删除默认 约束。

您不能使用默认值 0,因为它不作为 ID 出现在您的类别表中。因此, child 不能在没有 parent 的情况下出现。

重写

$table->unsignedInteger('category_id')->default(0);

$table->unsignedInteger('category_id')->nullable();

注意:确保在迁移子表之前始终先迁移父表。在您的情况下,当您运行 php artisan migrate

时,请在 product 之前迁移 categories

关于php - Laravel 中的关系 0...1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53695941/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com