当我尝试在我的迁移文件中创建外键时,当我运行迁移命令时出现错误。在订单表中,我将 userID 作为外键,所以我收到此错误
问问题
37 次
2 回答
2
您需要对外键使用完全相同的类型。在users
你有:
$table->increments('id');
所以它是无符号整数,所以order
代替:
$table->integer('userID');
(有符号整数)您需要使用:
$table->integer('userID')->unsigned();
(无符号整数)使其工作。
于 2015-12-28T08:02:32.387 回答
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();
});
于 2015-12-28T07:54:19.137 回答