Bonjour,

J'ai des formulaires imbriqués :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
$builder->add('sousSpecialites', 'collection', array('type' => new SpecialiteForm(),
                                                             'allow_add' => true,
                                                             'allow_delete' => true,
                                                             'label' => false));
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
$builder->add('specialite', 'entity', array('class' => 'MonBundle:Specialite',
                                                    'empty_value' => 'Sous spécialité',
                                                    'required' => false,
                                                    'property' => 'specialite',
                                                    'label' => 'Sous spécialité',
                                                    'query_builder' => function(SpecialiteRepository $sr) {
                                                        $types = array();
                                                        $types[] = 1;
                                                        return $sr->queryBuilderByTypes($types, true);
                                                    }));
Cela me crée un formulaire avec une collection de liste de choix.
Je peux en rajouter cela ne pose pas de problème à la validation du formulaire.
Cependant lorsque je crée le formulaire avec une entité ayant déjà une sousSpecialite cela me sort l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Expected argument of type "object", "string" given
Au niveau de la strackTrace on voit bien qu'il passe une string:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
at Form ->setData  ('text')
Cependant avec un var_dump de mon entité c'est bien une entité :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
array
  0 => 
    object(Test\MonBundle\Entity\Specialite)[411]
      private 'id' => int 1
      private 'specialite' => string 'text' (length=12)
Problème résolu de manière obscure ...