1

我正在使用 FOSUserBundle 来管理用户,并且会话保存在数据库中,这要归功于 PdoSessionStorage。

我想在我的会话表中添加字段:

  • user_id :这是一个引用登录用户 ID 的外键
  • ip : 登录用户的IP地址
  • end_time :用户退出的时间

这是我的 app/config/config.yml 文件:

framework:
    session:
        default_locale: %locale%
        auto_start: true
        lifetime: 72000
        storage_id: session.storage.pdo

parameters:
    pdo.db_options:
        db_table: session
        db_id_col: session_id
        db_data_col: value
        db_time_col: time

services:
    doctrine.dbal.default.wrapped_connection:
        factory_service: doctrine.dbal.default_connection
        factory_method: getWrappedConnection
        class: PDO
    session.storage.pdo:
        class:     Symfony\Component\HttpFoundation\SessionStorage\PdoSessionStorage
        arguments: [@doctrine.dbal.default.wrapped_connection, %session.storage.options%, %pdo.db_options%]

我怎样才能做到这一点 ?

我需要扩展 PdoSessionStorage 类吗?

如果是这样,该怎么做?

4

1 回答 1

2

只需扩展PdoSessionStorage以添加您的信息。您可以自由地将任何依赖项添加到 session.storage.pdo.

关于用户 ID,您不必这样做,它已经在会话数据中(您必须对其进行解码)。

于 2012-07-31T08:15:03.420 回答