5 Stimmen

ManyToMany wird nicht gelöscht

Ich versuche, eine ManyToMany-Beziehung innerhalb von Doctrine 2 zu entfernen. Ich habe zwei Entitäten - User und TargetGroup.

In meiner User Entität habe ich:

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

In meiner TargetGroup Entität habe ich:

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

Ich versuche zu aufrufen:

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

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

Die beiden verwendeten Methoden sind:

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

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

Es tritt kein Fehler auf, aber es werden auch keine der Löschabfragen ausgeführt.

Irgendwelche Vorschläge?

3voto

moonwave99 Punkte 21474

Schauen Sie sich die Doctrine-Kaskaden-Eigenschaft an, detach in Ihrem Fall.

Wenn Sie cascade={"detach"} in beiden ManyToMany-Annotationen setzen, sollten die Kreuztabelleneinträge beim Persistieren entfernt werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X