2012-04-11 3 views
1

Ich verwende FOSUserBundle, um Benutzer zu verwalten, und Sitzungen werden dank PdoSessionStorage in der Datenbank gespeichert.Symfony2 & PdoSessionStorage: Wie füge ich Felder in die Datenbanksitzungstabelle ein?

würde Ich mag Felder in meiner Session-Tabelle hinzuzufügen:

  • user_id: die ein Fremdschlüssel ist die ID des angemeldeten Benutzers Referenzierung
  • IP: IP-Adresse des in
  • end_time angemeldeter Benutzer : die Zeit, wenn der Benutzer angemeldet hat meine app
  • aus

Hier/config/config.yml Datei:

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%] 

Wie kann ich das tun?

Muss ich die PdoSessionStorage-Klasse erweitern?

Wenn ja, wie geht das?

Antwort

2

Erweitern Sie einfach PdoSessionStorage, um Ihre Informationen hinzuzufügen. Sie können dem session.storage.pdo beliebige Abhängigkeiten hinzufügen.

Über die Benutzer-ID müssen Sie es nicht tun, es ist bereits in den Sitzungsdaten (Sie müssen sie entschlüsseln).