Laravel,什么是实现级联ondelete的正确方法?

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

我正在使用Laravel,我与一对多关系。假设1个父母有很多孩子。如果要删除父级,我想删除所有子级。我对答案有99,99%的把握,但是假设是所有错误的源泉,所以我想确定。

我知道架构生成器中有一个onDelete('cascade')选项。我将其用于子架构:

Schema::table('children', function (Blueprint $table) {
    $table->foreign('parent_id')->references('id')->on('parents')->onDelete('cascade');
});

这是否意味着如果删除了父项,关联的子项也将被删除,或者意味着如果删除了子项,父项也将被删除?

laravel database-schema
2个回答
0
投票

通过执行以下操作(已输入):

Schema :: table('children',function(Blueprint $ table){$ table-> foreign('parent_id')-> references('id')-> on('parents')-> onDelete('cascade');});

这意味着只要删除父级,关联的子级也会被删除,反之亦然,也就是说,如果删除子级,父级也不会被删除。


0
投票

这意味着,如果删除了父级,则外键也会级联并删除子级,如果父级没有适当的软删除,则在这种情况下,您需要自己级联删除。

© www.soinside.com 2019 - 2024. All rights reserved.