我正在为我的用户做一个搜索页面。表单显示在路径/ home中,收集的数据将发送到路径/搜索。这些用于进行我在/搜索时显示的搜索。问题是,如果表单在/ 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中处理它然后通过重定向发送数据但我不知道如何将数据传递给新路由。有什么想法吗?
提前致谢。
答案 0 :(得分:0)
您可以尝试这样的事情:
if ($formulario->isValid()) {
// Validate and search in DB
return $this->render('UsuarioBundle:Default:resultado.html.twig', array('usuarios' => $usuarios));
}
return $this->homeAction();