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



在我的laravel应用程序中,我有一个名为reserces的表和另一个名为papers的表。他们有一对多的关系,每项研究都可以有一篇或多篇论文。在论文迁移文件中,我使用创建了外键约束

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

现在,我想创建一个新的迁移,在Delete上添加级联,这样当论文的父研究被删除时,论文就会被删除。我该怎么做?我正在使用laravel 5.1

编辑

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

先删除外键,然后添加

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

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

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

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

文档可在此处找到。

最新更新