1

質問があります。私のサイトには、次のような変数をセッションに入れるルートがあります。

 public function userCaptcha(){
    $_SESSION['isFacebookRegistration'] = 0;
 }

今、別のルートウィッチにビューをレンダリングさせました:

public function index(){
    $this->session = $_SESSION;
    return $this->render('template/index.twig');
}

インデックス テンプレートでは、次のことを行います。

 {{ dump(session.isFacebookRegistration) }}
 {% set session = session|merge({'isFacebookRegistration' : 3}) %}

最初のルート: userCaptcha() に 1 回アクセスしますが、ルート index() には 2 回アクセスします。通常、最初の 0 と 2 番目の 3 を確認する必要があります。ただし、2 回は 0 しか表示されません。助けてください。アイデアは、最初に 0 を残りの 3 に表示することです。事前に Thx

4

1 に答える 1

0

Twig 側で PHP 変数を設定することはできません。ビューがリロードされるたびに、変数に加えた変更は失われます。次のようなことを試すことができます:

public function userCaptcha(){
    $_SESSION['isFacebookRegistration'] = 0;
}

public function index(){
    if (isset($_SESSION['flag'])) {
        $_SESSION['isFacebookRegistration'] = 3;
    }
    $_SESSION['flag'] = true;
    $this->session = $_SESSION;
    return $this->render('template/index.twig');
}

このように、 index() を初めて実行してもisFacebookRegistration値は変更されませんが、フラグが設定されます。次回は、条件が true にisFacebookRegistrationなり、変更されます。

于 2015-07-27T20:41:12.260 に答える