我的run_tasks
表具有外键completer_guest_id
,我需要参考其他表的列。
Schema::table('run_tasks', function (Blueprint $t) {
$t->integer('completer_id')->nullable();
$t->foreign('completer_id')->references('id')->on('users');
$t->integer('completer_guest_id')->nullable();
$t->foreign('completer_guest_id')->references('id')->on('tasks_guests');
});
但是我找不到索引:run_tasks_completer_guest_id_foreign
因此,在此迁移中,我无法删除外键约束并删除该列:
Schema::table('run_tasks', function (Blueprint $table){
$table->dropForeign('run_tasks_completer_guest_id_foreign');
$table->dropColumn('completer_guest_id');
$table->integer('completer_guest_id')->nullable();
$table->foreign('completer_guest_id')
->references('id')
->on('guests')
->onDelete('cascade');
});
答案 0 :(得分:1)
删除表格,尝试将创建和外键分配分开
Schema::dropIfExists('run_tasks');
Schema::create('run_tasks', function (Blueprint $table) {
$table->integer('completer_id')->nullable();
$table->integer('completer_guest_id')->nullable();
$table->index(['completer_id', 'completer_guest_id']);
});
Schema::table('run_tasks', function(Blueprint $table) {
$table->foreign('completer_id')->references('id')->on('users')->onDelete('cascade');
$table->foreign('completer_guest_id')->references('id')->on('guests')->onDelete('cascade');
});