ユーザー向けの検索ページを作成しています。フォームはパス /home に表示され、収集されたデータはパス /search に送信されます。これらは、/search で表示する検索を行うために使用されます。問題は、フォームが /search で処理され、検証エラーがある場合、フォームが /home ではなく /search に再ロードされることです。これを取得する方法はありますか?
//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 で処理し、リダイレクトを介してデータを送信しますが、データを新しいルートに渡す方法がわかりません。何か案が?
前もって感謝します。