CakePHP 3 Ассоциации удалить

Я новичок в 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. Я знаю, что что-то забыла, но не могу понять, что.

4

Решение

Я не уверен, почему у вас есть ассоциация hasMany в вашей таблице присоединения к компетенциям. Есть ли причина? Это должно принадлежать. Если нет, попробуйте установить в настройках ассоциаций dependent => true hasMany доц.

Смотрите документацию для hasMany (). Это хорошая идея, чтобы внимательно прочитать всю страницу.

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

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector