2012-08-31 21 views
5

Ich versuche, eine ManyToMany-Beziehung in Doctrine 2 zu entfernen. Ich habe zwei Entitäten - User und TargetGroup.ManyToMany löscht nicht

In meiner User Einheit habe ich:

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

In meiner TargetGroup Einheit habe ich:

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

ich zu nennen versuche:

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

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

Die beiden Methoden verwendet werden :

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 Löschabfragen ausgeführt.

Irgendwelche Vorschläge?

+0

http://stackoverflow.com/questions/6328535/on-delete-cascade-with-doctrine2 – Stony

Antwort

3

Werfen Sie einen Blick auf Doctrine cascade property, trennen Sie in Ihrem Fall.

Wenn Sie cascade={"detach"} für beide ManyToMany-Annotationen festlegen, sollten Kreuztabellensätze dauerhaft beibehalten werden.