我有一个模型,当我试图从数据库中删除条目时,它会给我一个错误(因为违反约束)。
错误信息是:
执行‘从pits_docmanager_domain_model_role删除id = ?’时发生异常。使用params 2: SQLSTATE23000:完整性约束违反: 1451不能删除或更新父行:外键约束失败(
flow\_db\_pits\_doc\_manager.pits\_docmanager\_domain\_model\_role\_role\_accesspoints\_join,constraintFK\_54B164455C544054REFERENCES (docmanager\_role)引用pits\_docmanager\_domain\_model) #23000: SQLSTATE23000:完整性约束违反: 1451不能删除或更新父行:外键约束失败(flow\_db\_pits\_doc\_manager.pits\_docmanager\_domain\_model\_role\_role\_accesspoints\_join,constraintFK\_54B164455C544054FK\_54B164455C544054(docmanager\_role)引用pits_docmanager_domain_model\)
在我的实体中我有(role.php)
/**
* @var \Doctrine\Common\Collections\Collection<\Pits\DocManager\Domain\Model\AccessPoint> $role_accessPoints
* @ORM\ManyToMany(targetEntity="\Pits\DocManager\Domain\Model\AccessPoint",cascade={"remove"})
* @ORM\JoinTable(name="role_accesspoints",
* joinColumns={@ORM\JoinColumn(name="access_point_id",referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="role_id",referencedColumnName="id")})
*/
protected $role_accessPoints;另一个文件(accesspoints.php)
/**
* @var \Doctrine\Common\Collections\Collection<\Pits\DocManager\Domain\Model\Role> $accessPoint_roles
* @ORM\ManyToMany(targetEntity="\Pits\DocManager\Domain\Model\Role",cascade={"all"})
*/
protected $accessPoint_roles;即使我在属性中设置了级联选项,也仍然无法删除该条目。
编辑:我想达到的目的是..。
假设我有两个模型(角色和辅助点)。如果删除某个角色,则需要能够删除该角色以及与联接表中的角色相关的相应数据(并且希望将数据保存在可访问点中。)
编辑2:修复(从级联param中删除所有选项并使其工作)
/**
* @var \Doctrine\Common\Collections\Collection<\Pits\DocManager\Domain\Model\AccessPoint> $role_accessPoints
* @ORM\ManyToMany(targetEntity="\Pits\DocManager\Domain\Model\AccessPoint",cascade={})
* @ORM\JoinTable(name="role_accesspoints",
* joinColumns={@ORM\JoinColumn(name="access_point_id",referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="role_id",referencedColumnName="id")})
*/
protected $role_accessPoints;发布于 2015-03-19 07:43:00
尝试这一点,它将自动删除mm表中删除结果的连列。
/**
* Result organisation reletion(in Result model)
*
* @var \Doctrine\Common\Collections\Collection<\WIND\Alertregistration\Domain\Model\Organization>
* @ORM\ManyToMany(cascade={})
* @ORM\Column(nullable=true)
* @ORM\JoinTable(joinColumns={@ORM\JoinColumn(onDelete="cascade")})
*/
protected $resultOrgRelation;https://stackoverflow.com/questions/28060630
复制相似问题