我正在使用Laravel,我与一对多关系。假设1个父母有很多孩子。如果要删除父级,我想删除所有子级。我对答案有99,99%的把握,但是假设是所有错误的源泉,所以我想确定。
我知道架构生成器中有一个onDelete('cascade')选项。我将其用于子架构:
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');});
这意味着只要删除父级,关联的子级也会被删除,反之亦然,也就是说,如果删除子级,父级也不会被删除。
这意味着,如果删除了父级,则外键也会级联并删除子级,如果父级没有适当的软删除,则在这种情况下,您需要自己级联删除。