使用twig设置会话变量

时间:2015-07-27 14:00:13

标签: php twig php-5.3 php-5.4 twig-extension

我有一个问题。我在我的网站上有一条路线,我在这里设置了一个变量:

 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()一次,但路由索引()2次,通常我需要看第一次0和第二次3.但我只看到0次2次。你能帮我吗?这个想法是第一次显示0,其余为3. Thx提前

1 个答案:

答案 0 :(得分:0)

您无法在Twig端设置PHP var。每次重新加载视图时,您对变量所做的更改都将丢失。你可以尝试这样的事情:

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值,但会设置一个标志。下一次,条件将是真的isFacebookRegistration将改变。