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

Laravel实现级联ondelete的正确方法是什么?,laravel,database-schema,Laravel,Database Schema,我正在使用Laravel,我有一对多关系。比如说一个有很多孩子的单亲家庭。如果父项被删除,我想删除所有子项。我对答案有99.99%的把握,但是假设是所有错误的根源,所以我想确认一下 我知道模式生成器中有一个onDelete(“级联”)选项。我对children模式是这样使用的: Schema::table('children', function (Blueprint $table) { $table->foreign('parent_id')->references('id

我正在使用Laravel,我有一对多关系。比如说一个有很多孩子的单亲家庭。如果父项被删除,我想删除所有子项。我对答案有99.99%的把握,但是假设是所有错误的根源,所以我想确认一下

我知道模式生成器中有一个onDelete(“级联”)选项。我对children模式是这样使用的:

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

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

执行以下操作(如您已经键入的):


这意味着,每当删除父项时,关联的子项也会被删除,反之亦然。这意味着,如果删除了子项,则不会删除父项。

,方法如下(如您已键入的):


这意味着每当删除父项时,关联的子项也会被删除,反之亦然,这意味着如果删除子项,则不会删除父项。

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

这意味着,如果父项被删除,外键也将级联并删除子项,如果父项没有软删除,在这种情况下,您需要自己级联删除

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