我的默认控制器路由“/
”设置为运行索引:
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。
答案 0 :(得分: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'));
答案 1 :(得分:1)
您可以重定向到fos_user_security_login
$response = $this->redirect($this->generateUrl('fos_user_security_login'));
答案 2 :(得分:0)
看起来,您没有名为“login”的路线。 你必须在route.yml | xml文件中创建它,但你不必指定控制器,因为FOS会处理它,就像在yml中一样:
login:
pattern: /login
编辑: 对不起,我的错误,当然不是布局,登录。 但你是岸上,路线是否装载?导致generateUrl期望路由名称。