【问题标题】:Doctrine - Remove of Entity with unidirection many-to-many relation failsDoctrine - 删除具有单向多对多关系的实体失败
【发布时间】:2020-03-23 12:34:15
【问题描述】:

我有两个实体。 ConfigurationRoleConfiguration 中具有单向多对多关系:

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

创建和更新按预期工作,但是

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

不会工作(外键违规),因为 Doctrine 不会删除关系数据集

它仅适用于手动删除关系并在删除实体之前进行额外的刷新。

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 删除相关数据集

【问题讨论】:

    标签: doctrine-orm many-to-many


    【解决方案1】:

    由于手动创建多对多表(不能迁移),忘记设置外键为DELETE CASCADE

    我希望 Doctrine 处理删除

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 2012-10-10
      • 2013-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多