0

ユーザー向けの検索ページを作成しています。フォームはパス /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 で処理し、リダイレクトを介してデータを送信しますが、データを新しいルートに渡す方法がわかりません。何か案が?

前もって感謝します。

4

1 に答える 1