由于外键约束,无法删除使用 DiscriminatorColumn 扩展另一个实体的实体

时间:2021-07-19 15:15:39

标签: doctrine-orm doctrine

我在我的 User 类上使用 @ORM\InheritanceType("JOINED") 并且我创建了一个扩展 User 的 Agent 类

当我尝试删除代理条目或相应的用户条目时,出现外键约束错误

如何添加孤儿移除?

这是我的用户类实体设置:

/**
 * @ORM\Entity(repositoryClass=UserRepository::class)
 * @ORM\InheritanceType("JOINED")
 * @ORM\DiscriminatorColumn(name="discriminator", type="string")
 * @ORM\DiscriminatorMap({"agent" = "Agent", "user" = "User"})
 * @ORM\HasLifecycleCallbacks
 */

1 个答案:

答案 0 :(得分:0)

这似乎是一个“hacky”解决方案,但我已将此代码添加到我的删除代理控制器代码中:

$user = $this->userRepository->find($agent->getId());

$this->entityManager->remove($user);
$this->entityManager->remove($agent);
$this->entityManager->flush();