Bonjour
J'ai créé une entité contenant un champ de type CollectionType
Ceci est pratiquement identique à http://symfony.com/doc/current/form/...llections.html
La seule différence est que j'ai ajouté un SubmitType qui POST sur un url précisé lors de sa création (via setAction())
Mon souci est que lors du Post, les données sont mal envoyées / récupérées.
En effet, au final, je me retrouve avec, pour reprendre l'exemple du lien, un array des champs des éléments ie : [ [ champ1 champ2 champ3] [ champ1 champ2 champ3] .... [ champ1 champ2 champ3]].
Alors que je vuex un array des éléments avec leurs champs rensignés ie : [ Element1([ champ1 champ2 champ3]) Element2([ champ1 champ2 champ3]) .... Elementn([ champ1 champ2 champ3])].
Il en résulte que pour ce champ de type ArrayCollection, une erreur est levée précisant que les valeurs sont dans le champ 'extraData'.
Voici le builder du form :
et le builder de ElementType:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $builder ->add('ID', IntegerType::class) ->add('éléments', CollectionType::class, array( 'entry_type' => ElementType::class )) ->add('save', SubmitType::class, array('label' => 'Save config'));
Ah je précise aussi que je mets ça en entrée dans le form:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ->add('champ1') ->add('champ2') ->add('champ3')
[/CODE]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 CODE] "elements" => [▼ Element[▼ "champ1" => "A" "champ2" => "champ3" => ] Element[▼ "champ1" => "B" "champ2" => "champ3" => ]
Et j'obtiens ça en sortie une fois le form complété et envoyé:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 "elements" => [▼ [▼ "champ1" => "A" "champ2" => "hihi" "champ3" => "hoih" ] [▼ "champ1" => "B" "champ2" => "hoih" "champ3" => "iohoi"
Partager