Bonjour,
Je reposte ici car il me semble que mon problème relève plutôt d'une erreur commise avec Doctrine qu'autre chose, mais je ne parviens pas à mettre le doigt dessus.
Dans une relation ManyToOne bidirectionnelle, je ne récupère pas la collection du côté One lorsque je fais un get de mes entités correspondantes. De manière concrète, je cherche à récupérer toutes les provinces appartenant à une région particulière.
Voici la proriété concernée dans mon entité Province :
Voici la propriété et les méthodes concernées dans mon entité Region :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 ... /** * @ORM\ManyToOne(targetEntity="Hotels\GestionAdressesBundle\Entity\Region", inversedBy="provinces") */ private $region; ...
Lorsque j'instancie un objet Region qui contient des provinces et que je fais :
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 ... /** * @ORM\OneToMany(targetEntity="Province", mappedBy="region") * @OrderBy({"nom" = "ASC"}) */ protected $provinces; ... public function __construct() { $this->communes = new ArrayCollection(); $this->provinces = new ArrayCollection(); $this->departements = new ArrayCollection(); } ... * Get provinces * * @return entity Province */ public function getProvinces() { return $this->provinces; } ...
c'est 'vide' qui est affiché.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public function getProvinces() { $data = $this->provinces->getSnapshot(); if(empty($data)) echo 'vide'; else echo 'pas vide'; return $this->provinces; }
Quelqu'un aurait une idée de l'endroit où je commets mon erreur?
Merci d'avance pour vos réponses.
Partager