在Symfony 4中使用PDO会话时,有什么方法可以将自定义列添加到会话表中



我只是用Symfony配置PDO会话,这对我来说绝对效果很好,但是现在我希望添加一些额外的字段,例如用户IP,用户ID等,以稍后进行报告登录哪个区域,因此我找不到将新列添加到会话表中的方法,因为它的工作有点不同

  //services.yaml
SymfonyComponentHttpFoundationSessionStorageHandlerPdoSessionHandler:
        arguments:
            - !service { class: PDO, factory: 'database_connection:getWrappedConnection' }
            - { lock_mode: 1 }
//framework.yaml 
session:
        enabled: true
        gc_maxlifetime: 36000 #10 hours custom session time
        handler_id: 'SymfonyComponentHttpFoundationSessionStorageHandlerPdoSessionHandler'
        save_path: '%kernel.project_dir%/var/sessions/%kernel.environment%'
        cookie_secure: auto
        cookie_samesite: lax

//database table
CREATE TABLE `sessions` (
    `sess_id` VARCHAR(128) NOT NULL PRIMARY KEY,
    `sess_data` BLOB NOT NULL,
    `sess_time` INTEGER UNSIGNED NOT NULL,
    `sess_lifetime` MEDIUMINT NOT NULL
) COLLATE utf8_bin, ENGINE = InnoDB;

通过使用名称用户日志创建第三个表,并将会话ID和用户ID传递到IT(已经创建的会话和用户表(以及一些额外的字段(例如IP位置(等来解决问题。每当用户登录将进入此表

最新更新