[Symfony2/Twig] problème affichage avec boucle !

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [Symfony2/Twig] problème affichage avec boucle !

Re: [Symfony2/Twig] problème affichage avec boucle !

par zeus » 25 janv. 2013, 10:46

Plutôt que de construire dynamiquement des noms de champs ("'IndemnitesNuit1", "'IndemnitesNuit2", ...), pourquoi ne pas profiter de la syntaxe en tableau ("IndemnitesNuit[]") ?

[Symfony2/Twig] problème affichage avec boucle !

par marvin63 » 23 janv. 2013, 10:20

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 :
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');
 
        }
J'ai donc des champs de type IndemnitesNuit1, IndemnitesNuit2, ...

Code de la vue :

Code : Tout sélectionner

{% 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 %}
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 .

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 ? Cela fait plusieurs jours que je bloque là-dessus ...Merci d'avance.