【发布时间】:2021-12-02 06:31:06
【问题描述】:
假设我有一个表 users 和 persons。 persons 中的条目可以有或没有用户 ID。所以一个人可以有一个用户,但这是可选的。
这意味着persons 中的外键需要可以为空。
这是我的数据库迁移:
$table->bigInteger('user_id')->nulleable()->unsigned();
$table->foreign('user_id')->nulleable()->references('id')->on('users');
可悲的是,当我检查它说的数据库列时,该字段不可为空
+------------+-----------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-----------------+------+-----+---------+----------------+
| user_id | bigint unsigned | NO | MUL | NULL | |
+------------+-----------------+------+-----+---------+----------------+
如何将外键设置为可为空?我尝试了在网上找到的各种组合,但没有任何效果。
非常感谢您。
【问题讨论】:
-
使用
$table->foreignId('user_id')->nullable()->constrained();而不是你的两行。
标签: mysql laravel foreign-keys laravel-8