0

我的默认控制器将路由“ /”设置为运行索引:

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。

4

3 回答 3

4

如果你输入

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'));
于 2013-04-26T17:53:12.480 回答
1

您可以重定向到fos_user_security_login

$response = $this->redirect($this->generateUrl('fos_user_security_login'));
于 2013-03-04T14:27:53.873 回答
0

看起来,您没有名为“登录”的路线。你必须在你的 route.yml|xml 文件中创建它,但你不必指定控制器,因为 FOS 会处理它,就像在 yml 中这样:

login:
    pattern: /login

编辑:对不起,我的错误,当然不是布局,登录。但是你在岸上,路线已经加载了吗?原因 generateUrl 需要一个路由名称。

于 2013-03-04T16:19:52.807 回答