CakePHP 3关联删除

时间:2017-01-17 17:49:05

标签: php cakephp

我是CakePHP的新手以及所有关联的东西。当我想删除一个类别时,我也想删除链接到该类别的权限。这是我的桌子型号:

CategoriesTable.php

class CategoriesTable extends Table
{
    public function initialize(array $config)
    {
        parent::initialize($config);

        $this->belongsToMany('Competences');
    }
}

CompetencesTable.php

class CompetencesTable extends Table
{
     public function initialize(array $config)
     {
        parent::initialize($config);

        $this->belongsToMany('Categories');
        $this->belongsToMany('CategoriesCompetences');
     }
}

CategoriesCompetencesTable.php

class CategoriesCompetencesTable extends Table
{
    public function initialize(array $config)
    {
        parent::initialize($config);

        $this->belongsTo('Categories');
        $this->hasMany('Competences');
    }
}

当我删除一个类别时,它会删除链接表中的行,但不会删除CompetenceTable中的权限。我知道我忘记了某些内容,但无法弄清楚是什么。

1 个答案:

答案 0 :(得分:1)

我不确定为什么你的连接表中有一个hasMany关联到Competences。有原因吗?它应该属于。如果没有尝试在hasMany assoc的关联选项dependent => true中进行设置。

See the documentation for hasMany()。仔细阅读整个页面是个好主意。

public function initialize(array $config)
{
    $this->hasMany('Competences', [
        'foreignKey' => 'article_id',
        'dependent' => true,
    ]);
}