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

问题描述 投票:0回答:1

我只是使用 symfony 配置 Pdo 会话,这对我来说绝对没问题,但现在我想添加一些额外的字段,如用户 IP、用户 ID 等,以便稍后生成报告,说明哪个用户从哪个区域登录,所以我找不到办法将新列添加到会话表中,因为它的工作方式有点不同

这是我的

services.yaml
文件:

Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler:
            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: 'Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler'
            save_path: '%kernel.project_dir%/var/sessions/%kernel.environment%'
            cookie_secure: auto
            cookie_samesite: lax

数据库表:

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;
php symfony session pdo
1个回答
0
投票

通过按名称用户日志创建第三个表并将会话 ID 和用户 ID 传递到其中(已创建会话和用户表)以及一些额外字段(如 ip 位置等)解决了问题。每当用户登录时,请输入此表

© www.soinside.com 2019 - 2024. All rights reserved.