Как аннулировать сеанс с контроллером с помощью Symfony 4 - PullRequest
0 голосов
/ 06 июля 2018

Мое приложение переносится из Symfony 3 в Symfony 4, я не знаю, является ли это ошибкой Symfony 4 или нет.

Я использую API отдыха, использующий контроллер, который создает и удаляет сеанс.

когда я создаю сеанс и устанавливаю переменную.

$session = new Session(); // or $this->get("session") 
$session->start();
$session->set("key", "value");

и пытаюсь сделать недействительной сессию.(Я пробовал все это)

$session = new Session();
$session->invalidate(1);
$session->clear();

$this->get("session")->invalidate(1);

$request->getSession()->invalidate(1);

значение все еще может быть получено с помощью метода get.например, с помощью

$request->getSession()->get("key");

Также сервисы для установки токена на нуль и больше не доступны.

1 Ответ

0 голосов
/ 08 июля 2018

Сначала получите текущий сеанс

$session = $this->get('session');

Чтобы установить переменную:

$session->set('key', 'value');

Чтобы очистить все переменные:

$session->clear();

Чтобы сделать сеанс недействительным

$session->invalidate();

Когда я тогда делаю

var_dump($request->getSession()->get("key"));

возвращает ноль

Полагаю, проблема в том, что вы устанавливаете $ session дважды

$session = new Session();

$session->set('key', 'value');

$session = new Session();

$session->invalidate(1);

var_dump($request->getSession()->get("key"));

Возвращает строку 'value', в то время как

$session = new Session();

$session->set('key', 'value');

$session->invalidate(1);

var_dump($request->getSession()->get("key"));

возвращает ноль

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...