我有一個模型,當我嘗試從數據庫中刪除條目(由於違反約束條件)時給了我一個錯誤。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;