移行ファイルで外部キーを作成しようとすると、移行コマンドを実行するとエラーが発生します。オーダーテーブルでユーザーIDを外部キーにするため、このエラーが発生します
質問する
37 次
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 に答える