从2.0.X升级到2.1后,我的Symfony应用程序出现了一些问题。在升级之前,应用程序正好使用PdoSessionStorage。 The docs说在2.1中PdoSessionStorage的配置存在一些差异,但我认为我能够做出这些改变。
我看到的问题是没有数据被添加到会话表中的session_value(db_data_col)列。它正在为当前会话添加一条新记录,但它将数据留空。
有没有人遇到过这个问题?
我的配置包含以下内容:
framework:
session:
handler_id: session.handler.pdo
parameters:
pdo.db_options:
db_table: session
db_id_col: session_id
db_data_col: session_value
db_time_col: session_time
services:
pdo:
class: PDO
arguments:
dsn: "mysql:host=%database_host%;port=%database_port%;dbname=%database_name%"
user: %database_user%
password: %database_password%
session.handler.pdo:
class: Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler
arguments: [@pdo, %pdo.db_options%]
答案 0 :(得分:0)
我遇到了同样的问题。在查看PdoSessionHandler.php代码之后,我发现代码依赖于session_id是uniq的事实。如果您像我一样,并且您基于此article创建了会话表,则情况并非如此。
编辑:事实上是这样的..我不知道为什么不是我的数据库中的情况
在我修复它的情况下,我不得不清空会话表并使session_id字段为uniq
答案 1 :(得分:0)
弄清楚发生了什么。我们发现了一些修改$ _SESSION的旧代码。 S2.1从" _symfony2"更改$ _SESSION中使用的密钥。到" sf2 *"