如何解决如何使用具有默认值的foreignId约束?
我刚刚从视频教程中注意到 Laravel 有这个 foreignId
-constrained
。因此,我尝试将代码从 method.1 更改为 method.2,表已迁移,但是当我尝试 db:seed
时,默认值不起作用(它在下面返回错误)。
(方法 1)
$table->unsignedBigInteger('status_id')->default(1);
$table->foreign('status_id')
->references('id')
->on('user_statuses');
(方法 2)
$table->foreignId('status_id')->constrained('user_statuses')->default(1);
(使用方法2返回错误)
SQLSTATE[HY000]:一般错误:1364 字段“status_id”没有默认值
value (SQL: insert into users
(username
,password
) values (admin,$2y$10$S
ZUIglBQG/HhS/18zn41GOcH8f.hZaNewmyoGJBfDQchfC6OWdx26)))
解决方法
According to the documentation,您以错误的顺序调用方法:
必须在 constrained
方法之前调用任何其他列修饰符
$table->foreignId('status_id')->default(1)->constrained('user_statuses');
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。