我正在为我的用户做一个搜索页面。表单显示在路径/home 中,收集的数据发送到路径/search。这些用于进行我在 /search 中显示的搜索。问题是,如果表单在 /search 处处理并且存在任何验证错误,则表单将在 /search 而不是 /home 中重新加载。有没有办法得到这个?
//routing.yml
home:
path: /
defaults: { _controller: UsuarioBundle:Default:home}
search:
path: /search
defaults: { _controller: UsuarioBundle:Default:search}
.
//UsuarioBundle/Controller/DefaultController.php
public function homeAction()
{
$request = $this->getRequest();
$usuario = new Usuario();
$formulario = $this->createForm(new UsuarioBusquedaType(), $usuario, array(
'action' => $this->generateUrl('search'),
'method' => 'POST',
));
return $this->render('UsuarioBundle:Default:portada.html.twig', array('formulario' => $formulario->createView() ));
}
public function searchAction()
{
$request = $this->getRequest();
$usuario = new Usuario();
$formulario = $this->createForm(new UsuarioBusquedaType(), $usuario, array(
'action' => $this->generateUrl('search'),
'method' => 'POST',
));
$formulario->handleRequest($request);
if ($formulario->isValid()) {
// Validate and search in DB
return $this->render('UsuarioBundle:Default:resultado.html.twig', array('usuarios' => $usuarios));
}
return $this->render('UsuarioBundle:Default:portada.html.twig', array('formulario' => $formulario->createView() ));
我也尝试过这样做:显示表单并在同一路径 /home 中处理它,然后通过重定向发送数据,但我不知道如何将数据传递到新路由。任何想法?
提前致谢。