Bonjour a tous,
je suis débutant dans symfony et j'ai un petit soucis au niveau de l'affichage d'un formulaire. J'explique mon problème, je voudrais créer, par l'intermédiaire de symfony 2.1, un formulaire contenu dans un tableau afin que des Agents puissent renseigner le nombre d'heures supplémentaires qu'ils ont effectué dans le mois.
D'après ce que j'ai compris, il faut donc que j'affiche mon formulaire ligne par ligne pour pouvoir bien positionner mes <div> ou mes <tr> et ainsi obtenir l'affichage voulu.
Voici le code que j'ai jusqu'à présent :
Code de la vue :
Code du Formulaire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <form action="#" method="post" {{ form_enctype(form) }} > {{ form_errors(form) }} {{ form_row(form.nomAgent) }} {{ form_label(form.nomAgent) }} {#afficher le label du champ nomAgent #} {{ form_widget(form.nomAgent) }} {# afficher le champ #} </br> <input type="submit" value="Envoyer" /> </form>
Code du contrôleur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 class FormulaireType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('nomAgent', 'text', array('label' => 'Nom de l\'agent :')); }
Mon problème, c'est que lors de l'affichage (dans la vue), il n'y a que le label du champ "nomAgent" qui s'affiche, je n'arrive pas à afficher le champ correspondant, pour pouvoir renseigner ce nom d'agent. Il me semble que c'est form_widget qui gère cela mais je n'en suis pas sur...
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 class FormulaireController extends Controller { /** * @Route("/", name="formulaire") * @Template() */ public function indexAction() { $mois= date("n"); $year = date("Y"); $num = cal_days_in_month(CAL_GREGORIAN, $mois, $year); //Pour que la vue connaisse la date courante $agent = new Agent(); $form = $this->get('form.factory')->create(new FormulaireType(), $agent); $em = $this->getDoctrine()->getEntityManager(); $request = $this->get('request'); if ($request->isMethod('POST')) { $form->bind($request); $filiere = new Filiere(); // On creer un objet filiere avant de creer lagent (pour la clétrangere) $filiere->setLibellefiliere('Test'); $em->persist($filiere); // On insert la filiere dans la base pour pouvoir inserer lagent( idFiliere) $em->flush(); $agent->setIdfiliere($filiere); $em->persist($agent); $em->flush(); return $this->redirect($this->generateUrl('confirmForm')); } return $this->render('CcovariablePayeBundle:Formulaire:index.html.twig', array( 'form' => $form->CreateView(), 'tst' => $num)); }
Merci d'avance pour votre aide, et en espérant que le problème sera résolu, déjà plusieurs jours que je suis dessus...Merci !![]()
Partager