我有一个模型,当我尝试从数据库中删除条目(由于违反约束条件)时给了我一个错误。Doctrine,Typo3流:无法删除级联工作
的错误信息是:在执行时发生
例外,“DELETE FROM pits_docmanager_domain_model_role WHERE ID =?使用参数[2]: SQLSTATE [23000]:完整性约束违规:1451无法删除或更新父行,外键约束失败(`flow_db_pits_doc_manager`.`pits_docmanager_domain_model_role_role_accesspoints_join`,约束`FK_54B164455C544054`外键(`docmanager_role`)参考`pits_docmanager_domain_model`)
#23000:SQLSTATE [23000]:完整性约束违规:1451无法删除或更新父行,外键约束失败(`flow_db_pits_doc_manager`.`pits_docmanager_domain_model_role_role_accesspoints_join`,约束`FK_54B164455C544054` FOREIGN KEY (`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种型号(角色和accesspoints)。如果我删除了一个角色,我需要能够删除该角色以及与连接表中相关的相关数据(并且希望保持访问点中的数据不变)
编辑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;