Laravel在删除时将层叠添加到现有表中

问题描述 投票:0回答:2

在我的laravel应用程序中,我有一个称为researces的表,另一个有名为papers的表。他们之间存在一对多的关系,每个研究可以有一个或多个论文。在论文迁移文件中,我使用以下方法创建了外键约束:

        //foreign key for the research model
        $table->unsignedBigInteger('research_id');
        $table->index('researach_id');

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

laravel foreign-keys migration cascading-deletes
2个回答
0
投票

创建新的迁移并添加必要的外键约束,以及在修改/删除外键数据时要执行的操作。

$table->foreign('research_id')
      ->references('id')->on('researches')
      ->onDelete('cascade');

可以找到文档here


0
投票

首先删除外键,然后添加它

$table->dropForeign(['research_id']);
$table->foreign('research_id')
->references('id')->on('researches')
->onDelete('cascade');
© www.soinside.com 2019 - 2024. All rights reserved.