使用Flashbag进行Symfony2 PDO会话

Gre*_*ers 5 php session symfony

我正在使用Symfony 2.3.1(这个问题也出现在2.2中)和session.handler.pdo,但是当我添加一个flash包消息时:

$this->get('session')->getFlashBag()->add(
     'success', "Your message has been sent."
);                

return $this->redirect($this->generateUrl('home'));
Run Code Online (Sandbox Code Playgroud)

重定向后,它不会显示在主页上,直到我按下刷新,然后它会显示出来.因此它会显示2个请求.如果我将会话存储更改回本机,则问题就消失了.任何想法为什么会这样?

我使用以下内容在Twig中打印消息

{% for flashMessage in app.session.flashbag.get('success') %}
     {{flashMessage}}
{% endfor %} 
Run Code Online (Sandbox Code Playgroud)

我的服务与以下文档相同:

services:
    pdo:
        class: PDO
        arguments:
            dsn:      "mysql:dbname=%database_name%"
            user:     %database_user%
            password: %database_password%
        calls:
            - [setAttribute, [3, 2]] # \PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION

    session.handler.pdo:
        class:     Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler
        arguments: ["@pdo", %pdo.db_options%]
Run Code Online (Sandbox Code Playgroud)

dav*_*vid 0

尝试get('session')改变getSession()。希望它能起作用。