Laravel 在删除时添加级联到现有表

mar*_*han 1 migration foreign-keys cascading-deletes laravel

在我的 Laravel 应用程序中,我有一张名为“研究”的表,另一个名为“论文”的表。它们具有一对多的关系,其中每个研究可以有一篇或多篇论文。在论文迁移文件中,我使用以下命令创建了外键约束:

        //foreign key for the research model
        $table->unsignedBigInteger('research_id');
        $table->index('researach_id');
Run Code Online (Sandbox Code Playgroud)

现在我想创建一个新的迁移来添加级联 onDelete,以便在删除其父研究时删除论文。我该怎么做?我正在使用 Laravel 5.1

编辑

所以答案与接受的答案非常相似,只是我必须先删除该列,然后添加外键。因为我还没有进入生产环境,所以删除列不是问题,但如果您处于生产环境中,您最终可能会弄乱数据库中数据的一致性。所以要小心

Seh*_*dev 5

先删除外键,然后再添加

$table->dropIndex('researach_id');
$table->foreign('research_id')
->references('id')->on('researches')
->onDelete('cascade');
Run Code Online (Sandbox Code Playgroud)

参考: Laravel -> 数据库:迁移 -> 外键约束