【问题标题】:Set a session variables using twig使用 twig 设置会话变量
【发布时间】:2015-07-27 14:00:12
【问题描述】:

我有一个问题。我在我的网站上有一条路线,我在会话中放置了一个像这样的变量:

 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. 提前谢谢

【问题讨论】:

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


    【解决方案1】:

    您不能在 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 将改变。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-10
      • 2013-08-07
      • 1970-01-01
      • 1970-01-01
      • 2015-03-03
      相关资源
      最近更新 更多