我在laravel 5.6中创建迁移。
我需要添加用户信息,如果用户登录了我的网站,否则添加列0
。
我的代码是:
$table->integer('user_id')->default(0);
$table->foreign('user_id')->references('id')->on('users');
但运行migrate
后显示此错误:
SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint
我需要添加默认的0
或null
列或添加user_id
列,如果用户登录了我的网站。
这个问题怎么出?
4条答案
按热度按时间v7pvogib1#
您需要将其设置为
unsigned
和nullable
。另外,将创建列和添加外键逻辑分开是一个好主意,以避免类似的错误:j7dteeu82#
用户表中
user_id
和id
的数据类型将不同。在
increments()
中使用创建的主键将是无符号整数ctehm74n3#
使用此简短方法
Laravel很聪明,知道您正在引用users表
jm81lzqq4#
试试这个