1

移行ファイルで外部キーを作成しようとすると、移行コマンドを実行するとエラーが発生します。オーダーテーブルでユーザーIDを外部キーにするため、このエラーが発生します

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

4

2 に答える 2

2

外部キーにはまったく同じタイプを使用する必要があります。あなたusersが持っている:

$table->increments('id');

unsigned int なので、order代わりに:

$table->integer('userID');

(signed int)使用する必要があります:

$table->integer('userID')->unsigned();

(unsigned int) を使用して動作させます。

于 2015-12-28T08:02:32.387 に答える
0

または、以下の手順に従って問題を解決することもできます。

User モデルで、このコードを記述して注文を関連付けます。

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 に答える