簡體   English   中英

如何覆蓋Yii2 $ app-> user-> identity

[英]How to Override Yii2 $app->user->identity

我有一個使用輔助數據庫的模塊。 在其中,我嘗試從該輔助數據庫登錄到user表。 問題是\\Yii::$app->user->identity->id正在使用第一個數據庫。 我應該如何覆蓋類來做到這一點? 我在模塊的LoginForm.php中得到的是:

public function login()
    {

        if ($this->validate() && $this->user) {
            $isLogged = Yii::$app->getUser()->login($this->user, $this->rememberMe ? $this->module->rememberFor : 0);
            //var_dump($this->user);exit;
            if ($isLogged) {
                $user = \frontend\modules\store\models\User::findOne(Yii::$app->user->identity->id);
                $user->last_login_at = time();
                $user->update();
              //  $this->user->updateAttributes(['last_login_at' => time()]);
            }

            return $isLogged;
        }

        return false;
    }

如您所見,此處的user類已被覆蓋,並且正在使用輔助數據庫。 但是我該如何覆蓋Yii::$app->user->identity->id來使用此數據庫? 先感謝您!

您可以在配置中覆蓋用戶身份

'user' => [
'identityClass' => 'app\models\User', // User must implement the IdentityInterface
'enableAutoLogin' => true,
// 'loginUrl' => ['user/login'],
// ...

]

更多信息在這里

在使用Yii2高級模板時,應該考慮添加一個新的子應用程序。 Yii2先進的模板可以讓你有不同會話frontendbackend副應用。 同一域和不同會話上的高級模板

同樣,您可以添加一個新應用,在您的情況下,它可以稱為store 如果您將其作為單獨的應用程序進行操作,則可以簡單地覆蓋身份類,甚至可以為user使用不同的模型。 有關添加新應用的幫助在這里。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM