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 に答える