Bonjour à tous,
Je suis débutant avec symfony2, et j'ai un petit soucis avec l'affichage; je m'explique. Je veux réaliser un formulaire imbriqué dans un tableau, pour que des agents puissent renseigner, en face des dates (colonnes de gauche), le nombre d'heures effectuer dans telle ou telle catégories. Il faut donc que je puisse identifier chaque input avec un id unique pour pouvoir savoir la catégorie ainsi que la date. Voici mon code :
Code du Formulaire :
Mes champs sont donc de type IndemnitesNuit1 par exemple .
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 public function buildForm(FormBuilderInterface $builder, array $options) { $mois= date("n"); $year = date("Y"); if($mois == 1) { $mois = 12; $year = $year - 1; } else { $mois = $mois - 1; } $num = cal_days_in_month(CAL_GREGORIAN, $mois, $year); //pour savoir le nombre de jour du mois precedent. for($i=1;$i <= $num ; $i++){ $builder->add('IndemnitesNuit'.$i , 'text'); }
Code de la vue :
Le problème se situe dans la boucle. Le form_widget(form.IndemnitesNuit1) m'affiche bien mon input attendu alors que l'autre ligne non. Mon but est d'automatiser l'affichage des input en parcourant la boucle ; le problème c'est que je n'arrive pas a trouver la synthaxe adéquate pour indiquer le nom de mon champs de IndemnitesNuit1 à IndemnitesNuit31. J'ai donc esseyer en faisant form_widget(form.IndemnitesNuit~i) mais cela ne fonctionne pas .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 {% for i in 1..tst %} {# tst est une valeur renvoyer par le controleur, et contenant le nombre de jour du mois #} <tr> <td> {{ i }}</td> <td>{{ form_widget(form.IndemnitesNuit~i) }}</td> <td>{{ form_widget(form.IndemnitesNuit1) }}</td> </tr> {% endfor %}
Voici l'erreur générer :
Method "IndemnitesNuit" for object "Symfony\Component\Form\FormView" does not exist in Formulaire:index.html.twig at line 53
Pouvez vous m'aider ? Merci d'avance .
Partager