<?php namespace app\models; class User extends \yii\base\Object implements \yii\web\IdentityInterface { public $id; public $username; public $password; public $authKey; public $accessToken; private static $users = [ '100' => [ 'id' => '100', 'username' => 'admin', 'password' => 'admin', 'authKey' => 'test100key', 'accessToken' => '100-token', ], ]; /** * @inheritdoc */ public static function findIdentity($id) { return isset(self::$users[$id]) ? new static(self::$users[$id]) : null; } /** * @inheritdoc */ public static function findIdentityByAccessToken($token, $type = null) { foreach (self::$users as $user) { if ($user['accessToken'] === $token) { return new static($user); } } return null; } /** * Finds user by username * * @param string $username * @return static|null */ public static function findByUsername($username) { foreach (self::$users as $user) { if (strcasecmp($user['username'], $username) === 0) { return new static($user); } } return null; } /** * @inheritdoc */ public function getId() { return $this->id; } /** * @inheritdoc */ public function getAuthKey() { return $this->authKey; } /** * @inheritdoc */ public function validateAuthKey($authKey) { return $this->authKey === $authKey; } /** * Validates password * * @param string $password password to validate * @return boolean if password provided is valid for current user */ public function validatePassword($password) { return $this->password === $password; } }
改為如下程式碼即可
<?php namespace app\models; use Yii; class User extends \yii\db\ActiveRecord implements \yii\web\IdentityInterface { public $id; public $username; public $password; public $authKey; public $accessToken; static private $AUTH_KEY = "authkey_test"; //remember me need this static private $ACCESS_TOKEN = "accesstoken_test"; // remember me need this public static function tableName() { return 'tb_admin'; } /** * @return \yii\db\Connection the database connection used by this AR class. */ public static function getDb() { return Yii::$app->get('db_admin'); } /** * Finds user by username * * @param string $username * @return static|null */ public static function findByUsername($username) { $user = User::find()->where(['username'=>$username])->asArray()->one(); if(isset($user)){ $user['authKey'] = self::$AUTH_KEY; $user['accessToken'] = self::$ACCESS_TOKEN; } return isset($user) ? new static($user) : null; } /** * Validates password * * @param string $password password to validate * @return boolean if password provided is valid for current user */ public function validatePassword($password) { return $this->password === $password; } /** * @inheritdoc */ public function getId() { return $this->id; } /** * @inheritdoc */ public function getAuthKey() { return $this->authKey; } /** * @inheritdoc */ public static function findIdentity($id) { $user = User::find()->where(['id'=>$id])->asArray()->one(); if(isset($user)){ $user['authKey'] = self::$AUTH_KEY; $user['accessToken'] = self::$ACCESS_TOKEN; } return isset($user) ? new static($user) : null; } /** * @inheritdoc */ public static function findIdentityByAccessToken($token, $type = null) { return null; } /** * @inheritdoc */ public function validateAuthKey($authKey) { return $this->authKey === $authKey; } }
以上就介紹了yii2修改預設demo中登入模組連接資料庫,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。