Bonjour à tous,
J'ai un objet Adresse qui a un attribut rue, et une ManyToOne Ville.
J'aimerais, lorsqu'on ajoute une Ville qui existe déjà, l'attribut ville change dans Adresse.
Je m'explique :
Ici je teste si la ville saisie existe déjà dans ma base de données, si oui, je fais un setVille de cette ville.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 if($piste->getPersonne()->getAdresse()->getVille()->getLibelle() != null) { // on récupére tous les villes de la base pour comparer si la ville existe déjà $villes = $this->em->getRepository('IcmeMainBundle:Ville')->findAll(); foreach($villes as $v) { if($v->getLibelle() == $piste->getPersonne()->getAdresse()->getVille()->getLibelle() && $v->getCodepostal() == $piste->getPersonne()->getAdresse()->getVille()->getCodepostal()) // si la ville existe déjà en base, on l'affecte { $piste->getPersonne()->getAdresse()->setVille($v); } } }
Exemple, si j'ai Lille qui est la ville actuelle, que je modifie par Paris, et que Paris existe déjà, côté base de données, l'id idVille dans la table Adresse prend l'id de la ville Paris mais, dans la table ville, la ville Lille prend quand même Paris en valeur au moment du flush.
Comment puis-je fais pour mettre à jour l'id sans mettre à jour le libellé de la ville ?
Merci d'avance.
Cordialement.
Partager