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

「login」という名前のルートがないようです。route.yml|xml ファイルで作成する必要がありますが、コントローラーを指定する必要はありません。これは、yml で次のように FOS が処理するためです。

login:
    pattern: /login

編集:申し訳ありませんが、私の間違いです。もちろん、レイアウトではありません。ログインしてください。しかし、あなたは岸にいますか、ルートはロードされていますか?generateUrl にはルート名が必要です。

于 2013-03-04T16:19:52.807 に答える