在自我链接模型中,删除父节点时删除子节点
问题描述:
我想在删除父类别(使用'dependent'=> true)的同时删除所有子节点(子类别)。以下是简要说明 我正在使用自链接模型。让我们考虑我有2个表在自我链接模型中,删除父节点时删除子节点
1. Categories
2. Products
其中类别是多级。以便我在名为“parent_category_id”的Categories表中有一列。我有自我链接我的模型,波纹管,
$this->belongsTo('FileCategories', [
'foreignKey' => 'parent_category_id',
'className' => 'FileCategories',
'joinType' => 'INNER',
'dependent'=> true
]);
依赖“真”是不是在这个cenerio工作,所以是我做错了什么或有另一种方法来做到这一点。
答
您还应该添加hasMany关系如下。
$this->hasMany('Parent', [
'foreignKey' => 'parent_category_id',
'className' => 'FileCategories',
'joinType' => 'INNER',
'dependent'=> true
]);
如果不起作用,您可以试试这个选项('cascadeCallbacks'=> true)。
$this->hasMany('Parent', [
'foreignKey' => 'parent_category_id',
'className' => 'FileCategories',
'joinType' => 'INNER',
'dependent'=> true,
'cascadeCallbacks' => true
]);
为我工作。从未注意到我对belongsTo关联应用“dependent”=> true。 @vipul –