如何在提交后重置表单?它是一个简单的搜索表单,我在顶部显示一个字段,在底部显示一个表格,显示基于搜索的结果或整个列表...但它没有重置,搜索键保持不变.. 。
/**
* @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(),
));
}
我无法重定向,因为我在动作结束时执行渲染... 欢迎任何帮助,谢谢!!
答案 0 :(得分:3)
删除第二条$form->handleRequest($request);
行,你就可以了!
handleRequest
获取提交的POST或GET数据并将其应用于表单,因此如果您想要一个空白表单,那么您就不应该调用它。