我在laravel 5.6中创建了迁移。
如果用户登录我的网站,我需要添加用户信息,否则在列中添加0
。
我的代码是:
$table->integer('user_id')->default(0);
$table->foreign('user_id')->references('id')->on('users');
但运行后qazxsw poi显示此错误:
migrate
如果用户登录我的网站,我需要在列中添加默认的SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint
或0
或在列中添加null
。
如何发出这个问题?
你需要把它变成user_id
和unsigned
。此外,最好分开创建列并添加外键逻辑以避免类似的错误:
nullable
用户表中的qazxsw poi和qazxsw poi的数据类型将不同。
Schema::create('table_name', function (Blueprint $table) {
$table->unsignedInteger('user_id')->nullable();
});
Schema::table('table_name', function (Blueprint $table) {
$table->foreign('user_id')->references('id')->on('users');
});
在user_id
中创建的主键将是无符号整数
id
试试这个