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 :

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;
 
...
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
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;
    }
 
...
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
    public function getProvinces()
    { $data = $this->provinces->getSnapshot();
 
      if(empty($data))
       echo 'vide';
      else
       echo 'pas vide';  
        return $this->provinces;
    }
c'est 'vide' qui est affiché.

Quelqu'un aurait une idée de l'endroit où je commets mon erreur?

Merci d'avance pour vos réponses.