createForm collection problème entre _token et la ligne 0 (loop.index0)
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
Code:
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> |
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:
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)}} |
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:
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)}} |
La j'obtiens une belle erreur de ce type:
Key "1" in object with ArrayAccess of class "Symfony\Component\Form\FormView" does not exist in testBundle:Default: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
Code:
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> |
Encore une fois j'ai mais ligne sauf la première comment récupérer la dite ligne sans être ennuyé par le token
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