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

4

1 回答 1

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将会改变。

于 2015-07-27T20:41:12.260 回答