当我尝试在我的迁移文件中创建外键时,我在运行migrate命令时遇到错误。在订单表中,我将userID作为forign键,因此我收到此错误
答案 0 :(得分:2)
您需要对外键使用完全相同的类型。在users
中你有:
$table->increments('id');
所以它是unsigned int,所以在order
而不是:
$table->integer('userID');
(signed int)你需要使用:
$table->integer('userID')->unsigned();
(unsigned int)使它工作。
答案 1 :(得分:0)
或者您可以按照以下步骤解决问题。
在您的用户模型中,编写此代码以关联订单。
public function orders(){
return $this->hasMany('App\Order');
}
你的"命令"表格迁移将是这样的。
Schema::create('orders', function (Blueprint $table) {
$table->increments('id');
$table->text('extra_detail');
$table->integer('user_id');
});
在您的订单模型中,编写此代码以关联用户。
public function user(){
return $this->belongsTo('App\User');
}
您的用户"表格迁移将是这样的。
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
});