2015-01-21 73 views
0

我有一个模型,当我尝试从数据库中删除条目(由于违反约束条件)时给了我一个错误。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; 

回答

0

试试这个机器会自动删除在删除结果来自毫米表enries

/** 
* 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;