1

当我尝试在我的迁移文件中创建外键时,当我运行迁移命令时出现错误。在订单表中,我将 userID 作为外键,所以我收到此错误

http://i.stack.imgur.com/1voZh.png

4

2 回答 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 回答