2015-01-21 18 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;