Bonjour à tous,
fichiers : controller, 1entity, 1formType, 1 view
Il y a peut être quelque chose qui m'échappe à propos du _token car je rencontre le problème suivant:
Si j'isole pas le _token qui n'est pas un numéro d'array j'ai une erreur par contre si l'évite dans ma boucle je perds la ligne 0 de ma dite collection.
Ce que je veux faire dans une boucle du formulaire dans mon twig:
celui ci ainsi functionne
Ce que j'ai pensé faire et qui fonctionne puisque j'appelle tous le form mais avec le form_rest mise en haut pour avoir ligne 0 puisque condifition sur _token:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <form method="POST"> {{form_widget(form.0.prenom)}} {{form_widget(form.0.valider)}} {{form_widget(form.1.prenom)}} {{form_widget(form.1.valider)}} {{form_widget(form.2.prenom)}} {{form_widget(form.2.valider)}} </form>
par contre voila ce qui me pause problème si je tente de récupérer qu'un champs "input" de mon form par ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <!doctype html> <h1> test </h1> {{form_start(form)}} {{form_rest(form)}} {% for form in form %} {% if loop.index0 != "_token" %} {{form_widget(form)}} {% endif %} {% endfor %} {{form_end(form)}}
La j'obtiens une belle erreur de ce type:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <!doctype html> <h1> formulaire </h1> {{form_start(form)}} {{form_rest(form)}} {% for form in form %} {% if loop.index0 != "_token" %} {{form(form[loop.index0].prenom)}} {% endif %} {% endfor %} {{form_end(form)}}
Key "1" in object with ArrayAccess of class "Symfony\Component\Form\FormView" does not exist in testBundleefault:test.html.twig at line x
Ce que je remarque, es que si je fais un {{loop.index0}} avec _token j'obtiens 012 (3 = _token) qui pose problème si je l'enlève pas par contre si je l'évite j'obtiens 123 nombre de ligne cool me dis je.
hors si je retente cité plus haut erreur à nouveau car plus de ligne 0
Pour finir j'ai essayé cela et même délire
Encore une fois j'ai mais ligne sauf la première comment récupérer la dite ligne sans être ennuyé par le token
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
20 <!doctype html/> <htm> <body> Hello! <form method="post"> {% for key in form|keys %} {% if key != "_token" %} {{form_widget(form[loop.index0].prenom)}} {{form_widget(form[loop.index0].valider)}} {% endif %} {% endfor %} <input type="submit"/> </form> </body> </html>
Mais questions sont:
Comment éviter le _token dans une boucle sans altérer la ligne 0 puisqu'elle est supprimé en même temps que le _token ?
Comment avec le _token m'éviter l'erreur comme quoi il ne peux pas traité la boucle car _token n'est pas un nombre donc foire mon loop.index0 ?
Pourquoi le _token est il en relation direct avec la ligne 0 de ma collection ?
j'ai bien tenté de mettre un _token en hidden dans mon formbuilder mais cela n'a rien changer pensant qu'étant déclaré il pourrais lâcher la grappe à ma première entré collection0 ?
A quoi fait référence cette erreur de arrayAccess cela aurait il avoir du au faite que le _token pas trouvé ?
Merci pour vos conseils éventuel
A bientôt
Partager