我在 session.handler.pdo 中使用 Symfony 2.3.1(这个问题也出现在 2.2 中),但是当我像这样添加一个 flash bag 消息时:
$this->get('session')->getFlashBag()->add(
'success', "Your message has been sent."
);
return $this->redirect($this->generateUrl('home'));
重定向后它不会显示在主页上,直到我按刷新,然后才会显示。所以它需要显示 2 个请求。如果我将会话存储更改回本机,这个问题就消失了。任何想法为什么会发生这种情况?
我使用以下内容在 Twig 中打印消息
{% for flashMessage in app.session.flashbag.get('success') %}
{{flashMessage}}
{% endfor %}
我的服务与文档相同,如下所示:
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%]