我正在尝试在Laravel中创建外键,但是当我使用artisan迁移表时,出现以下错误:
[Lightning\Database\QueryException]
SQLSTATE[HY000]:一般错误:1215无法添加外键约束(SQL)
:alter table`priorities`add constraint priorities\u user\u id\u foreign
键(`user\u id`)引用了`users`(`id`)
我的迁移代码如下:
优先级迁移文件
公共函数up()
{
//
架构::创建('priorities',函数($table){
$table->;增量('id',true);
$table->;整数('user_id');
$table->;外来('user_id')->;引用('id')->;关于('users');
$table->;字符串('priority_name');
$table->;小整数('rank');
$table->;文本('class');
$table->;时间戳('timecreated');
});
}
/**
*反向迁移。
*
*@返回无效
*/
公共职能部门
{
//
Schema::drop('priorities');
}
用户迁移文件
公共函数up()
{
//
架构::表('users',函数($table)
{
$table->;创建();
$table->;增量('id');
$table->;字符串('email');
$table->;字符串('first_name');
$table->;字符串(“密码”);
$table->;字符串(“电子邮件代码”);
$table->;字符串('time_created');
$table->;字符串('ip');
$table->;字符串(“已确认”);
$table->;字符串(“用户角色”);
$table->;字符串('salt');
$table->;字符串(“上次登录”);
$table->;时间戳();
});
}
/**
*反向迁移。
*
*@返回无效
*/
公共职能部门
{
//
Schemea::drop('users');
}
任何关于我做错了什么的想法,我现在就想知道,因为我有很多表需要创建,例如用户、客户、项目、任务、状态、优先级、类型、团队。理想情况下,我希望创建使用外键保存此数据的表,即客户机\项目和项目\任务等
希望有人能帮助我开始
分两步添加,最好也取消签名:
公共函数up()
{
架构::创建('priorities',函数($table){
$table->;增量('id',true);
$table->;整数('user_id')->;无符号();
$table->;字符串('priority_name');
$table->;小整数('rank');
$table->;文本('class');
$table->;时间戳('timecreated');
});
模式::表('priorities',函数($table){
$table->;外来('user_id')->;引用('id')->;关于('users');
});
}