ManyToMany没有删除

Tho*_*mas 5 php many-to-many doctrine-orm

我试图删除Doctrine 2中的ManyToMany关系.我有两个实体 - User和TargetGroup.

在我的User实体中,我有:

/**
 * @ORM\ManyToMany(targetEntity="TargetGroup", inversedBy="users")
 */
private $targetGroups;
Run Code Online (Sandbox Code Playgroud)

在我的TargetGroup实体中,我有:

/**
 * @ORM\ManyToMany(targetEntity="User", mappedBy="targetGroups")
 */
private $users;
Run Code Online (Sandbox Code Playgroud)

我打电话给:

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

$em->persist($user);
$em->persist($targetGroup);
$em->flush();
Run Code Online (Sandbox Code Playgroud)

使用的两种方法是:

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

public function removeUser(Path To Bundle $users)
{
    $this->users->removeElement($users);
}
Run Code Online (Sandbox Code Playgroud)

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

有什么建议?

moo*_*e99 3

看看Doctrine Cascade property,在你的情况下分离。

如果您同时设置cascade={"detach"}这两个ManyToMany注释,则交叉表记录应该会保留下来。