2015-07-27 4 views
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() один раз, но указатель маршрута() 2 раза, обычно мне нужно видеть первый раз 0 и второй 3. Но я вижу только 0 в течение 2 раз. Не могли бы вы мне помочь? Идея состоит в том, чтобы показать в первый раз 0 для остальных 3. Thx заранее

ответ

0

Вы не можете установить PHP var на стороне Twig. Каждый раз, когда ваше представление перезагружается, изменения, внесенные вами в вашу переменную, будут потеряны. Вы можете попробовать что-то вроде этого:

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'); 
} 

Таким образом, выполнение индекса() в первый раз не изменится isFacebookRegistration значение, но будет установлен флаг. В следующий раз условие будет истинным: isFacebookRegistration изменится.

Смежные вопросы