php - Yii2 数据库 session - 存储附加属性和用户信息

标签 php session yii yii2

我正在使用 Yii2 的 DBSession将 Web 应用程序 session 存储到名为 session 的数据库表中的类。

此表默认只有 3 列 - idexpiredata

我想在此表中存储其他信息,例如已登录用户的 user_id

编辑:所以有一个父类叫做yii\web\MultiFieldSession但没有关于它如何使用的例子。我会看看我能发现什么......

最佳答案

创建迁移:

$this->createTable('session', [
    'id' => $this->char(40)->notNull(),
    'expire' => $this->integer(),
    'data' => $this->binary(),
    'user_id' => $this->integer()
]);

$this->addPrimaryKey('session_pk', 'session', 'id');

将此添加到配置中:

'components' => [
    'session' => [
        'class' => 'yii\web\DbSession',
        'writeCallback' => function($session){
            return [
                'user_id' => Yii::$app->user->id
            ];
        }
        // 'db' => 'mydb',  // the application component ID of the DB connection. Defaults to 'db'.
        // 'sessionTable' => 'my_session', // session table name. Defaults to 'session'.
    ],

关于php - Yii2 数据库 session - 存储附加属性和用户信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37966453/

相关文章:

php - 按总票数排序结果

php - 有什么方法可以在 virtualbox vm 中运行 php 来运行 sublime text linter?

php - WordPress php.ini 文件设置 upload_max_filesize 以获得 2MB 左右的上传大小

php - 为什么 Curl 会比 Web 浏览器慢?

php - 在 Redis 中实现 session 处理程序

php - Yii 从 CListView 部分中访问先前的数据项

php - 在 Yii 中更新和删除相关模型(关系表)

asp.net - Session_Start 中的 Response.Redirect 不起作用

java - 当一个人使用 Java servlet 中的 j_security_check 登录后,如何设置 session 变量(用户 ID 的 int)?

php - 在 yii 和 extjs 中实现 session