Tôi đang sử dụng Symfony 2.3.1 (vấn đề này cũng đã có mặt trong 2.2) với session.handler.pdo, nhưng khi tôi thêm một thông điệp túi đèn flash như vậy:Symfony2 PDO phiên với Flashbag
$this->get('session')->getFlashBag()->add(
'success', "Your message has been sent."
);
return $this->redirect($this->generateUrl('home'));
Nó không hiển thị trên trang chủ sau khi chuyển hướng cho đến khi tôi nhấn làm mới, sau đó nó xuất hiện. Vì vậy, nó lấy 2 yêu cầu được hiển thị. Nếu tôi thay đổi bộ nhớ phiên trở về nguồn gốc thì vấn đề này đã biến mất. Có ý kiến giải thích tại sao điều này lại xảy ra không?
tôi sử dụng những điều sau đây để in các thông điệp trong Twig
{% for flashMessage in app.session.flashbag.get('success') %}
{{flashMessage}}
{% endfor %}
và dịch vụ của tôi cũng giống như các tài liệu hướng dẫn như sau:
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%]