Bonjour,
Je travaille depuis 2 jours sur une fonctionnalité de recherche dans mon application. Je n'arrive pas à récupérer la valeur entrée dans le formulaire même si j'ai utilisé l'objet request comme dans la doc officielle. Quand je ne passe pas par le formulaire la requête dans le repository marche bien et la vue m'affiche le résultat comme attendu, je ne comprends pas d’où cela peut venir...
Voici un aperçu de mon code :
Le formulaire de recherche :
La requête dans le repository:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public function buildForm(FormBuilder $builder, array $options) { $builder ->add('value', 'text', array('property_path'=>false)); }
Mon action dans le contrôleur, et là ou, je crois, il y a le problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <?php public function getSearchList ($formvalue) { $qb = $this->createQueryBuilder('t'); $qb->where('t.priorite = :formvalue') ->setParameter('formvalue', $formvalue); return $qb->getQuery()->getResult(); }
Et finalement le bout de la vue qui contient le formulaire :
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 <?php /** * Lists all Tache entities. * * @Route("/", name="tache") * @Template() */ public function indexAction() { $request = $this->get('request'); $formvalue= $request->request->get('value'); /*Cette ligne censé récupérer la valeur ne marche pas, quand je fais par exemple $formvalue=3; j'ai le resultat attandu */ $tache = new Tache(); $search_form=$this->createForm(new RechercheType(), $tache); if($request->getMethod()=='POST') { $em = $this->getDoctrine()->getEntityManager(); $taches = $em->getRepository('spTacheBundle:Tache')->getSearchList($formvalue); } else { $em = $this->getDoctrine()->getEntityManager(); $taches = $em->getRepository('spTacheBundle:Tache')->findAll(); } return array( 'taches' => $taches, 'formvalue' => $formvalue, 'search_form' => $search_form->createView() );
Si vous avez une réponse à ce problème je serais reconnaissant, merci beaucoup
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <h1>Tache list {{formvalue}}</h1> <form action="{{ path('tache') }}" method="post" > {{form_widget(search_form) }} <p> <button type="submit">search</button> </p> </form>
Partager