2

我希望我的应用程序中有一个全局监听器在会话超时后重定向用户。

我正在收听以下kernel.exception事件SessionUnavailableException

public function onKernelException(GetResponseForExceptionEvent $event)
{
    $exception =  $event->getException();
    if ($exception instanceof SessionUnavailableException) {
        //start new session and set flash here...
        $response = new RedirectResponse($this->router->generate('homepage'));
        $event->setResponse($response);
    }
}

此代码在会话超时后执行。问题是如果我像这样离开代码,异常将在无限循环中触发。我需要在此处开始并保存会话,但找不到如何执行此操作...

有什么帮助吗?

顺便问一下,这是实现我目标的聪明方法吗?

4

1 回答 1

1

我认为您可以添加以下代码来启动会话:

use Symfony\Component\HttpFoundation\Session\Session;

和...

$session = new Session();
$session->start();

..然后您可以设置闪存消息:

$session->getFlashBag()->add(
                    'warning',
                    'El tiempo de su sesión se ha agotado. Por favor, vuelva a ingresar al sistema.'
);
于 2014-08-28T02:32:15.403 回答