J'ai besoin de votre aide aujourd'hui. Je travaille sur une petite application en utilisant symphonie 2.1 mais j'ai un problème de base, je dois tables avec plusieurs à plusieurs qui crée une troisième table:Symfony2 supprimer et enregistrer de nombreuses relations
class Usuario implements UserInterface {
/**
* @ORM\ManyToMany(targetEntity="Alood\BackBundle\Entity\Alergeno", inversedBy="usuarios")
* @ORM\JoinTable(name="UsuariosProductos",
* joinColumns={@ORM\JoinColumn(name="usuario_user", referencedColumnName="user")},
* inverseJoinColumns={@ORM\JoinColumn(name="alergeno_id", referencedColumnName="id")}
* )
**/
protected $alergenos;
}
public function __construct(){
$this->alergenos = new ArrayCollection();
}
public function getAlergenos() { return $this->alergenos; }
et:
/**
* @ORM\ManyToMany(targetEntity="Alood\BackBundle\Entity\Usuario", mappedBy="alergenos")
**/
protected $usuarios;
ensuite, je dois enlever la non sélectionnée alérgenos, ceci est mon contrôleur:
$alergenosUser = $em->getRepository("BackBundle:Usuario")->find($usuario);
$resultSym = array_diff($alergenosUsuarioIds, $alergen);
foreach($resultSym as $result) {
$alergenosUser->getAlergenos()->remove($result);
}
$em->persist($alergenosUser);
$em->flush();
Pourriez-vous s'il vous plaît aidez-moi à comprendre ce que je fais mal? Merci beaucoup!
Quel est exactement le problème avec votre code? ... malgré que vous persistiez objet est déjà géré par la doctrine qui n'est pas nécessaire dans ce cas? :) – nifr
Disons que j'ai l'utilisateur 1 et allergène 1 et puis je dis que l'utilisateur 1 a une allergie à 1, je peux le faire, mais quand je veux supprimer cette connexion (l'utilisateur 1 n'a plus allergie à l'allergène 1) Impossible de supprimer cette relation. – soni