Bonjour,

Je rencontre un problème sur la construction d'un sélect de formulaire. Voilà j'ai deux entités liées par une relation OneToMany

Articles : id_article, id_cat
Categories : id_cat, id_theme, nom

Je souhaiterais construire un sélect avec un html de cette forme. <option value="id_article">nom</option> avec id_article et nom venant de deux entités différentes.

Voici mon formulaire

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
$builder
 
            ->add('articles',   'entity', array(
                                   'class' => 'MyappArticlesBundle:Articles',
                                   'query_builder' => function(\Myapp\ArticlesBundle\Entity\ArticlesRepository $er)use($id_theme)
                                        {   
                                              return $er->getArticlesByTheme($id_theme);
 
                                        },
                                    'property'=>'c.nom',
                                    'empty_value' => 'Choisissez'
 
                               ))
Et mo repository

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
public function getArticlesByTheme($id_theme)
    {   
        $query = $this->createQueryBuilder('a')
 
                    ->leftJoin('MyappArticlesBundle:Categories', 'c')
                    ->where('a.idCat = c.idCat')
                    ->andWhere('c.idTheme = :id_theme')
                    ->setParameter('id_theme', $id_theme);
 
        return $query;
 
 
    }
J'obtiens cette erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Neither the property "c" nor one of the methods "getC()"
Je voudrais savoir comment on peut construire un select avec deux valeurs issues de deux entités différentes. J'ai tenté plusieurs combinaisons en enlevant par exemple le c de c.nom dans mon Query Builder mais j'obtiens toute forme d'erreur. Merci