2012-08-31 5 views
5

J'essaie de supprimer une relation ManyToMany à l'intérieur de Doctrine 2. J'ai deux entités - User et TargetGroup.ManyToMany ne supprime pas

Dans mon entité User je:

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

Dans mon entité TargetGroup J'ai:

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

Je suis en train d'appeler:

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

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

Les deux méthodes utilisées sont :

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

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

Il ne fait pas d'erreur, mais il ne fait aucune des requêtes de suppression non plus.

Des suggestions?

+0

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

Répondre

3

Jetez un oeil à Doctrine cascade property, détacher dans votre cas.

Si vous définissez cascade={"detach"} sur les deux annotations ManyToMany, les enregistrements crosstables doivent cesser de persister.

Questions connexes