Установите переменные сеанса с помощью ветки

У меня вопрос. У меня есть маршрут на моем сайте, где я помещаю в сессию такую ​​переменную:

 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. Спасибо заранее

1

Решение

Вы не можете установить переменную PHP на стороне 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');
}

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]