如何在symfony2中为ajax请求将视图文件呈现为json对象

时间:2012-09-11 07:32:46

标签: php ajax symfony

我有一个登录过程的动作。现在我想对正常登录过程和ajax请求使用相同的操作。

        /**
         * @Route("/sponsor/login", name="sponsor_login", options={"expose"=true})
         * @Template("SponsorBundle::login.html.twig")
         * @return array
         */
         public function loginAction()
         {}

我希望此操作为xmlhttp请求和正常的http请求呈现不同的视图文件。我该怎么做?我想在json对象中传递视图文件

1 个答案:

答案 0 :(得分:1)

你可以这样做:

return $this->getRequest()->isXmlHttpRequest()
 ? $this->render(.... "form.html.twig" ....)
 : $this->render(... full page that will include the form ...) ;

if ($this->getRequest()->isXmlHttpRequest()){
  $template = "form.html.twig" ;
  $params = ....
} else {
  $template = "login.html.twig" ;
  $params = ....
}

return $this->render($template, $params) ;