Symfony2:创建两个控制器,一个用于显示表单,另一个用于处理提交

时间:2015-08-07 21:22:14

标签: php forms symfony

您好,我是Symfony2 MVC框架的新手。到目前为止,我所获得的是使用树枝模板在树枝模板中渲染表单。我接下来要做的是创建第二个(单独的)控制器来处理表单提交。你能与我分享如何实现这一目标。

我已经阅读了symfony2文档,但是它没有用。

非常感谢:)

1 个答案:

答案 0 :(得分:2)

您需要在生成的表单上设置操作,如下所示:

public function generateSearchBarAction()
{
    $form = $this->createFormBuilder()
        //This is where we are defining the target route
        ->setAction($this->generateUrl('route_to_catch_the_request'))
        ->setMethod('POST')
        ->add('keyword')
        ->getForm()
    ;

    return $this->render('search_bar.html.twig', array(
        'form' => $form->createView()
    ));
}

route_to_catch_the_request处提供的控制器可以捕获请求。

public function showSearchKeywordsAction(Request $request)
{
    $form->handleRequest($request);
    if ($form->isValid()) {
         //do whatever...
    }
}