Bonjour,
J'ai surchargé le formulaire d'inscription du FOSUB pour ajouter des champs dont certains issus de relation... Après avoir galéré avec les relations de type OneToOne j'ai réussi, grâce à votre aide, à les faire s'enregistrer dans la base de données.
Aujourd'hui je reviens vers vous pour un problème lors de la persistance de relations bidirectionnelles OneToMany et ManyToOne.
Voici ma relation :
Logement :
Photo :
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 /** * @ORM\OneToMany(targetEntity="projet\BackOfficeBundle\Entity\Photo", mappedBy="logement", cascade={"persist", "remove"}) */ private $photos; public function __construct() { $this->photos = new \Doctrine\Common\Collections\ArrayCollection(); } /** * Get photos * * @return Doctrine\Common\Collections\Collection */ public function getPhotos() { return $this->photos; } /** * Set photos * * @param Doctrine\Common\Collections\Collection */ public function setPhotos($photos) { $this->photos = $photos; } /** * Add photos * * @param projet\BackOfficeBundle\Entity\Photo $photos */ public function addPhoto(\projet\BackOfficeBundle\Entity\Photo $photos) { $this->photos[] = $photos; }
Quand l'utilisateur s'enregistre et ajoute des photos pour son logement, les lignes correspondantes s'ajoutent bien en base de données mais il n'y a pas de relation (le champ logement dans la table photos est à null).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 /** * @ORM\ManyToOne(targetEntity="projet\BackOfficeBundle\Entity\Logement", inversedBy="photos") * @ORM\JoinColumn(name="logement", referencedColumnName="log_id") */ private $logement;
Du coup pas moyen de récupérer la liste des photos d'un logement en faisant $logement->getPhotos().
Est-ce normal ?
Comment puis-je faire pour avoir ce genre de relation persistée ?
Merci d'avance
Partager