2015-08-07 17:12:58 4991次浏览 3条回答 0 悬赏 10 金钱

我找了找 yii/web/user中的源码,未发现有显式声明 $class = $this->identityClass; 的地方呀。
我的users表同样实现了Identity..的接口。
但是登录时,他会去从user表中查找数据。
以下是我思考步骤:
Yii::$app->user->indentity->username 先去application中找user组件
找到后跳到yii/web/user中执行getIdentity()函数
然后再跳到renew AuthStatus()函数中。然后在这里的时候,他就去找user了。报错报的是user模型不存在。
我想知道的在哪里声明默认的 $class = $this->identityClass 。它是一个属性,它在哪里被设定的呢?

最佳答案

  • wxs77577 发布于 2015-08-08 01:31 举报

    config > components :

    'user' => [
        'identityClass' => 'common\models\User',
        'enableAutoLogin' => true,
    ],
    
    1 条回复
    回复于 2015-08-08 14:00 回复

    嗯。看到yii/base/Application 构造函数中 找到将其赋值的语句了。

  • 回答于 2015-08-07 17:37 举报

    需要有个表实现身份认证接口:implements IdentityInterface
    然后这个模型对应什么表就是你自个定的了

    2 条回复
    回复于 2015-08-07 17:43 回复

    我的users模型实现了这个接口的5个方法 。我也声明了tableName了。

    回复于 2015-08-07 17:44 回复

    能注册的。就是读取名字Yii::$app->user->indentity->username时,他找的是user表。

  • 回答于 2016-05-06 18:18 举报

    identity不是indentity

    觉得很赞
您需要登录后才可以回答。登录 | 立即注册
qiliux
助理

qiliux

注册时间:2015-07-27
最后登录:2016-01-26
在线时长:2小时22分
  • 粉丝1
  • 金钱94
  • 威望0
  • 积分114

热门问题