Doctrine - Сбой удаления сущности с однонаправленным отношением «многие ко многим» - PullRequest
0 голосов
/ 23 марта 2020

У меня есть две сущности. Configuration и Role с однонаправленным отношением «многие ко многим» в Configuration:

/**
 * @var Role[]
 *
 * @ORM\ManyToMany(targetEntity="App\Entity\Role")
 */
private $roles;

Создание и обновление работает, как ожидается, но

$this->entityManager->remove($configuration);
$this->entityManager->flush();

не будет работать (нарушение внешнего ключа), потому что Doctrine не удалит набор данных отношений

Он работает только с удалением отношения вручную И дополнительным гриппом sh перед удалением сущности.

foreach ($issueTypeConfiguration->getRoles() as $role) {
    $issueTypeConfiguration->removeRole($role);
}
// It only works with this additional flush
$this->entityManager->flush();
$this->entityManager->remove($issueTypeConfiguration);
$this->entityManager->flush();

Я ожидаю, что Doctrine удалит соответствующие наборы данных

1 Ответ

0 голосов
/ 23 марта 2020

Из-за ручного создания таблицы «многие ко многим» (миграция невозможна) я забыл установить внешний ключ на DELETE CASCADE

Я ожидал Doctrine для обработки удаления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...