Bonjour,
Dans mon projet, j'ai une entité CommandeProducteur qui contient une relation manytomany avec une entité GroupeProduits, qui elle-même a une relation many-to-many avec une entité Produit.
Je souhaite récupérer les produits contenus dans chaque GroupeProduit de mon objet CommandeProducteur.
Ma relation Many-toMany de mon groupe de produits est définie ainsi dans ma classe CommandeProducteur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
/**
    * @var ArrayCollection
    *
    * @ORM\ManyToMany(targetEntity="GroupeProduits", cascade={"persist"})
    */
    private $groupesProduits;
Dans le constructeur de ma classe CommandeProducteur j'ai:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
        $this->groupesProduits = new ArrayCollection();
Je tente donc d'accèder aux objets groupesProduits ainsi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
    public function getProduits()
    {
        $tabProd=array();
        $listeGroupes=$this->groupesProduits->toArray();
        foreach($listeGroupes as $groupe)
        {
            $tabProd[$groupe->getNom()]=$groupe->getProduits();
        }
        return $tabProd;
    }
mais c'est là qu'il n'aime pas: il me dit que:
Call to a member function toArray() on a non-object
Alors j'ai bien essayé d'y accéder directement sans passer par le ToArray(), mais il n'aime pas plus.
Comment lui faire comprendre qu'il s'agit bien d'un ArrayCollection et donc d'un objet?

Merci.