我想请你帮忙删除关联。
我的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":2,"2":10} 执行 'INSERT INTO friends (user_id,friend_user_id) VALUES (?, ?)' 时发生异常:
SQLSTATE [23000]:完整性约束违规:1062 键 'PRIMARY' 的重复条目 '2-10'
我究竟做错了什么?我试过有persist
没有它,都一样。也许在关联配置中有些东西?