0
我想問你的幫助,刪除關聯。原則:刪除自引用實體(多對多)
我User
實體:
class User
{
...
/**
* @ORM\ManyToMany(targetEntity="User", mappedBy="following")
**/
private $followers;
/**
* @ORM\ManyToMany(targetEntity="User", inversedBy="followers")
* @ORM\JoinTable(name="friends",
* joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="friend_user_id", referencedColumnName="id")}
*)
**/
private $following;
我有兩個動作:
簡介:遵循
// followAction
$entityManager = $this->getDoctrine()->getEntityManager();
$me->addFollowing($targetUser);
$targetUser->addFollower($me);
$entityManager->persist($me);
$entityManager->persist($targetUser);
$entityManager->flush();
簡介:取消關注
$entityManager = $this->getDoctrine()->getEntityManager();
$me->removeFollowing($targetUser);
$targetUser->removeFollower($me);
$entityManager->persist($me);
$entityManager->persist($targetUser);
$entityManager->flush();
以下過程正在以正確的方式工作,並且我看到適當的記錄friends
表。
但是,當我試圖停止關注用戶,我收到異常:
同時使用參數{ 「1」 執行 '(?)INSERT INTO的朋友(USER_ID,friend_user_id)VALUES' 發生異常2, 「2」:10}:
SQLSTATE [23000]:完整性約束衝突:關鍵 '主要'
什麼我做錯了1062重複條目 '2-10'?我試過persist
,沒有它,也一樣。也許有一些關聯配置?