Symfony2& PdoSessionStorage:如何在数据库会话表中添加字段?

时间:2012-04-11 10:11:20

标签: session symfony pdo

我正在使用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类?

如果是这样,该如何做?

1 个答案:

答案 0 :(得分:2)

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

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