在自链接模型中,删除父节点时删除子节点

时间:2017-05-29 13:16:56

标签: php cakephp cakephp-3.0

我想在删除父类别时删除所有子节点(子类别)(使用'依赖' => true)。这是简要说明 我正在使用自我链接模型。让我们考虑一下我有两张桌子

1. Categories
2. Products

其中类别是多级的。所以我在Categories表中有一个名为" parent_category_id"的列。我把自己的模型自我联系起来了,

$this->belongsTo('FileCategories', [
        'foreignKey' => 'parent_category_id',
        'className' => 'FileCategories',
        'joinType' => 'INNER',
        'dependent'=> true
    ]);

依赖"真"是不是在这个cenerio工作,所以我做错了什么或有另一种方法来做到这一点。

1 个答案:

答案 0 :(得分: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
]);