ManyToMany没有删除

时间:2012-08-31 10:17:48

标签: php doctrine-orm many-to-many

我正在尝试删除Doctrine 2中的ManyToMany关系。我有两个实体 - UserTargetGroup

在我的User实体中:

/**
 * @ORM\ManyToMany(targetEntity="TargetGroup", inversedBy="users")
 */
private $targetGroups;

在我的TargetGroup实体中:

/**
 * @ORM\ManyToMany(targetEntity="User", mappedBy="targetGroups")
 */
private $users;

我想打电话:

$user->removeTargetGroup($targetGroup);
$targetGroup->removeUser($user);

$em->persist($user);
$em->persist($targetGroup);
$em->flush();

使用的两种方法是:

public function removeTargetGroup(Path To Bundle $targetGroups)
{
    $this->targetGroups->removeElement($targetGroups);
}

public function removeUser(Path To Bundle $users)
{
    $this->users->removeElement($users);
}

它没有错误,但它也没有执行任何删除查询。

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

在您的案例中查看Doctrine cascade property分离

如果您在两个cascade={"detach"}注释上设置ManyToMany,则可以保留交叉记录。