Bonjour,
Je suis actuellement en train de développer une petite application en utilisant Symfony2 et je rencontre un souci pour le traitement d'un de mes formulaires imbriqués. Il s'agit d'une application de gestion de bibliothèque, j'essaie d'ajouter un nouveau livre à ma base de données. J'ai donc créé un formulaire qui contient une Collection permettant d'ajouter plusieurs auteur au livre en cours.
J'ai donc créé le type de formulaire suivant :
Mon formulaire imbriqué AjoutAuteurType correspond à ceci :
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 class AjoutLivreType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder-> add('titre','text')-> add('auteurs','collection', array('type' => new AjoutAuteurType(), 'allow_add' => true, 'prototype' => true))-> add('resume','textarea', array('required' => false)); } public function getName() { return 'AjoutLivre'; } public function getDefaultOptions(array $options) { return array('data_class' => 'bibliotheque\DonneesBundle\Entity\Livre',); } }
J'ai ensuite créé un formulaire permettant d'afficher dynamiquement les SELECT contenant la liste des auteurs, cela fonctionne bien. Par contre, lorsque j'essaie de soumettre mon formulaire, j'obtiens l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 class AjoutAuteurType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('auteur','entity', array('class' => 'bibliotheque\DonneesBundle\Entity\Auteur', 'property' => 'PrenomNom', 'required' => true, 'label' => 'auteur.nom')); } public function getName() { return 'AjoutAuteur'; } }
Je ne comprends pas pourquoi j'ai ce message car dans la définition de mon formulaire imbriqué, j'ai bien spécifié qu'il s'agit d'une Entity. Auriez-vous des idées pour régler ce souci?Catchable Fatal Error: Argument 1 passed to bibliotheque\DonneesBundle\Entity\Livre::addAuteur() must be an instance of bibliotheque\DonneesBundle\Entity\Auteur, array given in C:\wamp\www\bibliothequeAF\Symfony\src\bibliotheque\DonneesBundle\Entity\Livre.php line 146
Merci beaucoup par avance pour votre aide!
Partager