Yii2设置自定义会话

时间:2017-04-04 08:37:07

标签: php session yii2

我想从用户表(数据库)

添加costum会话和会话值查询

我放Yii::$app->session->set('blabla','1234')

如果我输入登录控制器并且用户设置了自动登录(不是访问登录),则会话无法设置

2 个答案:

答案 0 :(得分:3)

app\components\User组件中,您可以挂钩afterLogin事件

示例:

namespace \app\components;

Class User extends \yii\web\User{
   public function afterLogin($identity, $cookieBased, $duration){
      parent::afterLogin($identity, $cookieBased, $duration);
      Yii::$app->session->set('blabla','1234')
   }
}

ref http://www.yiiframework.com/doc-2.0/yii-web-user.html#afterLogin()-detail

答案 1 :(得分:0)

在你的 config/main.php 或 web/main.php 中加上 'on afterLogin'

'components' => [ 
...
   'user' => [
        ...
        'on afterLogin' => function($event) {
            if($userId = Yii::$app->session->get('__id')){
                $user = User::findOne($userId);
                Yii::$app->session->set('username', $user->username);
                Yii::$app->session->set('name', $user->name);
                ...
            }
        }
    ],