2017-05-29 151 views
1

我想在删除父类别(使用'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工作,所以是我做错了什么或有另一种方法来做到这一点。

回答

1

您还应该添加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 
]); 
+0

为我工作。从未注意到我对belongsTo关联应用“dependent”=> true。 @vipul –