Bonjour,
Depuis quelques jours je me bat avec une erreur que je n'arrive pas à résoudre. J'ai cherché sur google mais rien à faire, aucune piste de solution à mon niveau. Pour faire simple, j'ai deux tables :
voitures : id_voiture, id_constructeur, id_chassis
constructeur : id_constructeur, id_chassis, nom
Mon besoin est d'avoir un formulaire avec un select dont le html contiendrait ces éléments <option value="id_voiture">nom</option>. Au vu de la structure de la db que je ne peux modifier pour des raisons liées à l'entreprise, la seule solution pour moi est de faire une jointure entre les deux tables pour récupérer le nom.
Mon formulaire
Ma fonction getVoituresByConstructeur()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $builder ->add('voiture', 'entity', array( 'class' => 'MyAppBundle:Voitures', 'query_builder' => function(\My\AppBundle\Entity\VoituresRepository $er) { return $er->getVoituresByConstructeur(); } ));
Lorsque je fais un var_dump($query->getResult()); j'obtiens bien des données ce qui signifie que ma requête est bonne. Hors j'ai cette erreur dès que je fais return $query
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $query = $this->createQueryBuilder('v') ->select('v.idVoiture, c.nom') ->join('MyAppBundle:Constructeur', 'c') ->where('v.idConstructeur= c.idConstructeur'); return $query;
J'ai cherché cette erreur dans google et sur les forums mais je n'ai obtenu aucune piste. Si quelqu'un a une idée car je tente de comprendre ce que ça veut dire, mais tout ce que je retiens c'est que je passe un interger or lorsque je fais un var dump de ma query j'ai bien un objet.Warning: get_class() expects parameter 1 to be object, integer given in D:\www\lpf2015\vendor\symfony\symfony\src\Symfony\Component\Form\Extension\Core\ChoiceList\ObjectChoiceList.php line 256
Partager