每次$app->user->isguest()都要去查询数据表吗? [ 2.0 版本 ]
每个页面有判断是否已经登录,去log查看,都有一句select * from user where id='1'的语句。
难道这个不是写在session吗?
共 4 个回答
- 
  
- 
  
- 
 可以看看源码是怎么处理的 
 yii2\web\User.php
 第604行protected function renewAuthStatus()
 这个方法里面$class = $this->identityClass; $identity = $class::findIdentity($id);这2行 
 $class就是我们写的 app\models\User.php
 所以,你看看你自己写的这个User类里的findIdentity这个方法,是否查询了数据库
 下面是我写的方法,丢到了缓存里,就可以不用查数据库了public static function findIdentity($id) { $userCache = new UserCache(); $userData = $userCache->getUserDataByUid($id); if (empty($userData)) { return null; } else { $arr = []; $arr['id'] = $userData['user_id']; $arr['username'] = $userData['user_name']; $arr['authKey'] = $userData['user_authkey']; return new static($arr); } }
- 
  
hq22
            注册时间:2014-02-12
最后登录:2015-01-31
在线时长:11小时2分
    最后登录:2015-01-31
在线时长:11小时2分
- 粉丝0
- 金钱1
- 威望0
- 积分111