2013-03-04 54 views
-1

没有工作,我有我的路线“/”默认控制器设置为运行指标:的Symfony2与FOSUserBundle - 重定向在控制器

public function indexAction() { 
    if ($this->get('security.context')->isGranted('IS_AUTHENTICATED_FULLY')) { 
     //render the logged in view(s) 
     $response = $this->render('Pan100MoodLogBundle:Default:index.html.twig'); 
    } else { 
     //redirect to the login controller 
     $response = $this->redirect($this->generateUrl('login')); 
    } 
    return $response; 
} 

但是Symfony的找不到路线:

路线“登录“不存在。 500内部服务器错误 - RouteNotFoundException

什么可能是错误的?我正在使用FOSUserBundle。

回答

1

您可以重定向到fos_user_security_login

$response = $this->redirect($this->generateUrl('fos_user_security_login')); 
0

看起来,你没有名为“登录”的路线。 您的route.yml创建它| xml文件,但是你没有指定控制器,使FOS将处理它,这样在阳明:

login: 
    pattern: /login 

编辑: 对不起,我的错误,当然不是布局,登录。 但你是否在岸上,路线是否已装载?导致generateUrl期望路由名称。

+0

你的意思是布局? – Piddien 2013-03-04 16:45:11

+0

我把它放在我的配置/路由中,它不起作用。它的工作原理与我在答案中描述的一样,但我不知道这是否是正确的做法... – Piddien 2013-03-04 16:53:06

3

如果键入

php app/console router:debug 

你会看到你所有的应用途径。

随着php app/console router:debug | grep login,它表明:

fos_user_security_login    ANY  /login 
fos_user_security_check    ANY  /login_check 

所以尽量

$response = $this->redirect($this->generateUrl('fos_user_security_login'));