0

次のコードを使用して、Symfony2 のセッションに値を書き込みました。

    $session = new Session();
    $session->start();
    $session->set('passport', '1');

同じページで、次のコードを使用して値がセッションに保存されているかどうかをテストし、完全に成功しました。

    $request = $session->get('passport');
    print_r($request);

ただし、セッションが作成されたコントローラーは、ユーザーを別のコントローラーにリダイレクトします。このコントローラーには、次のコードがあります。

public function indexAction()
{
        $request = $session->get('passport');

        if (isset($request)) {
                    do something
        } else {
            return $this->redirect("denied.html");
        }
}

しかし、何も起こりません。画面が白くなるだけで、エラーは何もありません。$request変数を次のコードに置き換えました。

$request = '1';

そして、コードは正常に動作します。セッションを取得しようとすると、うまくいきません。

4

1 に答える 1

0

ここでこの回答を見つけ、2番目の質問を試しました。

2 番目の質問では、次のコードが追加されました。

$session = $this->getRequest()->getSession();

これを追加したところ、コードが機能するようになりました。

于 2013-07-30T16:13:45.480 に答える