2021-06-22 00:05:26 2067次浏览 3条回答 0 悬赏 10 金钱
Yii::$app->user->identity->aaa
Yii::$app->user->identity->bbb

有几个变量想放在identity里面,
只查到替换,没查到增加,

Yii::$app->getUser()->identity['company_id'] = $company_id;

我也尝试在模型 user 里面添加成员变量 aaa bbb,并在 findIdentity 函数里面赋值

public static function findIdentity($id)
{
   this->aaa = 10000;
}

也没成功

最佳答案

  • 蓝色主旋律 发布于 2021-06-23 08:25 举报

    identity 持有的是 main.php 中配置的 user 的 identityClass的实例对象,如果要给其赋予自定义字段,就需要在对应的 identityClass 的类上加。

    如:

    'user' => [
        'identityClass' => backend\models\User::className(),
    ],
    
    // ------------------------------------------------------
    namespace backend\models;
    class User implements IdentityInterface {
        public $prop1;
        public $prop2;
    }
    
    // ------------------------------------------------------
    // 然后才可以
     \Yii::$app->user->identity->prop1=$prop1;
     \Yii::$app->user->identity->prop2=$prop2;
    
    1 条回复
    回复于 2021-06-23 08:40 回复

    是这样,后来嫌麻烦又放缓存里面读取了。 尴尬.jpg

  • 回答于 2021-06-22 09:15 举报

    配置里这一段熟悉吗?

    'components' => [
        'user' => [
            'identityClass' => backend\models\User::className(),
            'enableAutoLogin' => false,
            'identityCookie' => ['name' => '_backend_identity'],
            'idParam' => '__backend__id',
            'returnUrlParam' => '_backend_returnUrl',
        ],
        ……
    ]
    

    然后

    $user = \Yii::$app->user->identity;
    

    User里有什么属性你就可以用什么了~

    2 条回复
    回复于 2021-06-22 17:51 回复

    不熟悉呀,大佬你这都是初始化配置以及修改默认前缀的
    要在这里初始化属性吗?

    'user' => [
        'identityClass' => backend\models\User::className(),
        'enableAutoLogin' => false,
        'aaa' => 10000,
        'bbb' => 20000',
    ],
    

    然后 \Yii::$app->user->identity->aaa = $aaa

    是这样吗

    回复于 2021-06-23 07:24 回复

    不行!这样直接提示基类没有aaa bbb这些成员变量 ,继承了,也设置了aaa bbb 还是不行

  • 回答于 2021-07-07 12:34 举报

    没看明白呢,直接在user类里写个get方法不行吗?

    public function getAbc(){
        return '1233';
    }
    

    Yii::$app->user->identity->abc 调用

您需要登录后才可以回答。登录 | 立即注册
yzg91
主管

yzg91

注册时间:2018-11-15
最后登录:2022-05-10
在线时长:22小时13分
  • 粉丝2
  • 金钱479
  • 威望20
  • 积分899

热门问题