Bonjour,
J'avais déjà posté une demande d'aide par rapport à ce problème mais en m'exprimant mal sur ce que je voulais, je recommence alors un nouveau post.
Mon but serait de pouvoir récupérer l'ID de mes champs "User" et "Chaufferie" pour pouvoir faire une requête et retourner la liste de toutes les workTimes qui correspondent à ces champs. Tout ça à l'envoi de mon formulaire.
J'ai essayé de le faire de diverses manières dans mon controller, mais je pense que je m'y prends mal. Je n'arrive pas à interagir avec les propriétés "protected" et "private" de mes objets listés dans mon formulaire, qui sont également des classes enregistrées dans ma base de donnée.
Si quelqu'un peut m'apporter son aide.
J'ai donc un formulaire: WorkTimeReportForm.php
j'ai mon fichier controller: WorkTimeController.php avec ma fonction reporterAction.
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
37
38
39 <?php namespace Project\TimesBundle\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilder; class WorkTimeReportForm extends AbstractType { public function buildForm(FormBuilder $builder, array $options) { $builder->add('chaufferie', 'entity', array( 'class' => 'ProjectTimesBundle:Chaufferie', 'property' => 'nomAdresse',)); $builder->add('user', 'entity', array( 'class' => 'ProjectUserBundle:User', 'property' => 'username',)); $builder->add('dateDebut', 'date', array( 'widget' => 'single_text', 'input' => 'datetime', 'format' => 'dd/MM/yyyy', 'attr' => array('class' => 'mCalendar') )); $builder->add('dateLim', 'date', array( 'widget' => 'single_text', 'input' => 'datetime', 'format' => 'dd/MM/yyyy', 'attr' => array('class' => 'mCalendar') )); } public function getName() { return 'workTimeReport'; } }
Merci d'avance
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
37
38 public function reporterAction() { $message = ""; $em = $this->container->get('doctrine')->getEntityManager(); $qb = $em->createQueryBuilder(); $qb->select('u') ->from('ProjectTimesBundle:WorkTime','u') ->add('orderBy', 'u.date DESC') ->setMaxResults( 15 ); $query = $qb->getQuery(); $workTimes = $query->getResult(); $workTimeReport = new WorkTimeReport(); $form = $this->container->get('form.factory')->create(new WorkTimeReportForm(), $workTimeReport); $request = $this->container->get('request'); if ($request->getMethod() == 'POST') { $form->bindRequest($request);<br> $workTimeReport = new WorkTimeReport($form->getData());<br> $user = new User($workTimeReport->user);<br> $chaufferie = new Chaufferie($workTimeReport->chaufferie);<br><br> $dateDebut = $workTimeReport->dateDebut;<br> $dateLim = $workTimeReport->dateLim;<br><br> $userId = $user->id;<br> $chaufferieId = $chaufferie->id;<br><br><br> $message = "User = " .$user->id. " Chaufferie = Objet = ";<br><br> $query = $repository->createQueryBuilder('p')<br> ->where('p.user = :user')<br> ->setParameter('user', $userId)<br> ->where('p.chaufferie = :chaufferie')<br> ->setParameter('chaufferie', $chaufferieId)<br> ->where('p.date > :dateDebut')<br> ->setParameter('dateDebut', $dateDebut)<br> ->where('p.date < :dateLim')<br> ->setParameter('dateLim', $dateLim)<br> ->orderBy('p.date', 'ASC')<br> ->getQuery();<br> $workTimes = $query->getResult(); } return $this->container->get('templating')->renderResponse( 'ProjectTimesBundle:WorkTime:export.html.twig', array( 'form' => $form->createView(), 'message' => $message, 'workTimes' => $workTimes ) ); }
Partager