Php 完整性约束冲突:1451无法删除或更新父行:外键

Php 完整性约束冲突:1451无法删除或更新父行:外键,php,doctrine-orm,doctrine,Php,Doctrine Orm,Doctrine,在我的Symfony 5项目中,我试图删除一个实体及其子实体,但出现以下错误: 执行'DELETE FROM Parameters_admin'时发生异常 其中id=?'带参数[34]: SQLSTATE[23000]:完整性约束冲突:1451无法删除或删除 更新父行:外键约束失败 (testAppenterprise,CONSTRAINTFK_D19FA6019935CA7外键 (parametres\u admin\u id)引用parametres\u admin(id) 然而,在我看来,

在我的Symfony 5项目中,我试图删除一个实体及其子实体,但出现以下错误:

执行'DELETE FROM Parameters_admin'时发生异常 其中id=?'带参数[34]:

SQLSTATE[23000]:完整性约束冲突:1451无法删除或删除 更新父行:外键约束失败 (
testApp
enterprise
,CONSTRAINT
FK_D19FA6019935CA7
外键 (
parametres\u admin\u id
)引用
parametres\u admin
id

然而,在我看来,我已经正确地配置了我的实体

我想删除这个

企业


/**
*@ORM\Entity(repositoryClass=EnterpriseRepository::class)
*/
阶级企业
{
/**
*@ORM\Id()
*@ORM\GeneratedValue()
*@ORM\Column(type=“integer”)
*/
私人$id;
/**
*@ORM\OneToMany(targetEntity=User::class,mappedBy=“enterprise”,orphan=true)
*/
私人用户;
/**
*@ORM\OneToOne(targetEntity=ParameterSadmin::class,inversedBy=“enterprise”,cascade={“persist”,“remove”})
*@ORM\JoinColumn(nullable=true)
*/
私人$ParameterSadmin;
//...
参数sadmin

/**
*@ORM\Entity(repositoryClass=ParameterSadminRepository::class)
*/
类ParameterSadmin实现可序列化
{
/**
*@ORM\Id()
*@ORM\GeneratedValue()
*@ORM\Column(type=“integer”)
*/
私人$id;
/**
*@ORM\OneToOne(targetEntity=Enterprise::class,mappedBy=“parametresAdmin”,cascade={“persist”})
*/
私人企业;
//...
Enterprise实体中,我将
cascade={“persist”,“remove”}
放在ParameterSadmin关系中,以在移除Enterprise行时移除ParameterSadmin
在我的ParameterSadmin实体中,我为Enterprise关系设置了
cascade={“persist”}
。不是
,cascade={“persist”,“remove”}
,以确保您不会犯任何错误。(我以前设置过,但我已经有这个错误,所以我删除了它,但它没有改变任何东西)

谢谢。enterprise和parametersAdmin之间有1:1的关系。因此,如果不删除enterprise,则无法删除ParameterAdmin。如果删除了enterprise,则最终会出现指向不存在的param实体的enterprise实体。如果需要保留enterprise实体,则需要将其param关系置空因此,如果我想删除一家公司,是否没有办法使用条令注释自动化所有事情?我将不得不用PHP手动一步一步地完成?如果你总是想在删除param时删除enterprise,那么cascade remove应该可以做到。虽然你似乎已经尝试过了?是的,我尝试过了但是我发现了我在第一篇文章中注意到的错误