我有2个模型:产品和类别,其中每个产品属于一个类别(或不属于)
然后我在产品表中放置了一个“ category_id”。但是category_id可以为null。
在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 :(得分:1)
删除welcome()
约束。
您无法使用默认值default
,因为默认值未在您的类别表中显示为ID。因此,没有父母就不能有孩子。
重写
0
到
$table->unsignedInteger('category_id')->default(0);
注意::请确保在迁移子表之前始终先迁移父表。就您而言,在运行$table->unsignedInteger('category_id')->nullable();
categories
之前迁移product