我有一个登录过程的动作。现在我想对正常登录过程和ajax请求使用相同的操作。
/**
* @Route("/sponsor/login", name="sponsor_login", options={"expose"=true})
* @Template("SponsorBundle::login.html.twig")
* @return array
*/
public function loginAction()
{}
我希望此操作为xmlhttp请求和正常的http请求呈现不同的视图文件。我该怎么做?我想在json对象中传递视图文件
答案 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) ;