0

私はSymfony2.1を使用していて、次のようなことをしたいと思っています。

メインページの前のウェルカムページ

ユーザーが私のページにアクセスしたとき/私は彼を/welcomeにリダイレクトしたいと思います。/ welcomeにあるリンクをクリックすると、/ pageにリダイレクトされますが、メインページ(/)が再びウェルカムページに表示されないはずです。ルーティングでこれを行うにはどうすればよいですか?出来ますか?

「通常の」PHPでは、セッションでこれを行いますが、Symfony2はどうですか?

編集:

私はこのようなセッションで問題を解決しました:

core_homepage(パターン/)とwelcome_homepage(パターン/ welcome)の2つのルートがあります。

//Controller for core:
public function indexAction()
    {
        $session = new Session();
        $session->start();

        if ($session->get('welcome_flag')=='0'){
            return $this->render('MarkCoreBundle:Default:index.html.twig');
        } else {
            return $this->redirect($this->generateUrl('welcome_homepage'));
        }  
    }

//Controller for welcome:
public function indexAction()
    {
        $session = new Session();
        $session->start();

        if ($session->get('welcome_flag') == '0'){
            return $this->redirect($this->generateUrl('core_homepage'));   
        } else {
            $session->set('welcome_flag', '0');
            return $this->render('MarkWelcomeBundle:Default:index.html.twig');
        }
    }

誰かが他に何かを持っているなら-解決策を投稿してください。

4

1 に答える 1

1

セッションを使用できます。「/」ルートのコントローラーで、セッションにフラグが設定されているかどうかを確認します。そうでない場合は、「/welcome」ページにリダイレクトします。「/welcome」ルートのコントローラーで、セッションにこのフラグを設定します。

これは、セッションがアクティブな間だけ持続することに注意してください。より永続的な設定が必要な場合は、これをデータベースなどに永続化する必要があります。

于 2012-09-11T15:44:45.583 に答える