2016-07-12 6 views
0

送信後にフォームをリセットするにはどうすればよいですか?これは簡単な検索フォームで、上部にフィールドを表示し、下部には検索結果またはリスト全体の結果を表示するテーブルが表示されますが、リセットされずに検索キーが残っています...symfonyでフォームをリセットするには

/** 
* @Route("/", name="plazas_index") 
*/ 
public function indexAction(Request $request) 
{ 
    $form = $this->createForm('AppBundle\Form\BuscarType'); 
    $form->handleRequest($request); 

    $repository = $this->getDoctrine()->getRepository('AppBundle:Plaza'); 

    if ($form->isSubmitted() && $form->isValid()) { 

     $clave = $form['clave']->getData(); 

     $query = $repository->createQueryBuilder('p') 
      ->where('p.nombre LIKE :nombre') 
      ->orWhere('p.localidad LIKE :localidad') 
      ->setParameter('nombre', '%'.$clave.'%') 
      ->setParameter('localidad', '%'.$clave.'%') 
      ->orderBy('p.nombre', 'ASC') 
      ->getQuery(); 

     $plazas = $query->getResult(); 
     $cant = count($plazas); 

     $this->addFlash($cant ? 'success' : 'warning', 'La búsqueda de '.$clave. ' ha producido '.$cant.' resultados'); 
     //return $this->redirectToRoute('plazas_index'); 
    } 
    else { 
     $plazas = $repository->findAll(); 
    } 

    unset ($form); 
    $form = $this->createForm('AppBundle\Form\BuscarType'); 
    $form->handleRequest($request); 
    return $this->render('admin/plazas/index.html.twig', array(
     'plazas' => $plazas, 
     'buscar_form' => $form->createView(), 
    )); 
} 

アクションの最後にレンダリングするのでリダイレクトできません... 助けを歓迎します、ありがとう!!

答えて

3

2番目の$form->handleRequest($request);行を削除してください、あなたは行こうとしています!

handleRequestは提出されたPOSTまたはGETデータを受け取りフォームに適用するので、空白のフォームが必要な場合はそのフォームを呼び出さないでください。

+0

ありがとう!!!! – jmunozco

関連する問題