Bonjour à tous,
J'ai une entité "livre" qui contient un champ "langue", plus d'autres champs.
Pour ne pas mettre des km de code, je ne laisse que celui qui me semble important.
Je veux faire un formulaire de création, avec une liste déroulante qui contient toutes les langues, mais une seule fois chacune, d'où le distinct dans mon query builder, car je vais chercher les langues dans mon entité "livre", pour récupérer celles qui existent déjà.
A la ligne de mon controller :
'form_livre' => $form_livre->createView(),
J'ai le message :
Warning: spl_object_hash() expects parameter 1 to be object, string given
Google étant mon ami, j'ai passé des heures de recherches, essayé plein de trucs tordus, sans succès.
Mon champ "langue" est défini en chaine, comment je peux retourner un objet ?
Donc là, j'ai simplifié au maximum mon code, et j'espère vore aide !
entité "livre" :
1 2 3 4 5 6
| /**
* @var string
*
* @ORM\Column(name="langue", type="string", length=200)
*/
private $langue; |
controller :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| $livre = new Livre();
$form_livre_builder = $this->get('form.factory')->createBuilder(livreType::class, $livre);
$form_livre_builder->add('langue', EntityType::class, array(
'label' => 'livre.formcreer.langue',
'placeholder' => 'français',
'class' => 'testBundle:Livre',
'choice_label' => 'langue',
'multiple' => false,
'expanded' => false,
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('l')
->select('l.langue')
->distinct()
;
},
))
;
$form_livre = $form_livre_builder->getForm();
return $this->render('testBundle:Visit:visit_livre_creer.html.twig', array(
'form_livre' => $form_livre->createView()
)); |
Merci d'avance pour votre aide !
Partager