У меня вопрос. У меня есть маршрут на моем сайте, где я помещаю в сессию такую переменную:
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. Спасибо заранее
Вы не можете установить переменную 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
изменится.
Других решений пока нет …