/**
  * Logs in a user using the provided username and password.
  *
  * @return boolean whether the user is logged in successfully
  */
 public function login()
 {
     if ($this->validate()) {
         $user = $this->getUser();
         $logined = Yii::$app->getUser()->login($user, $this->rememberMe ? 3600 * 24 * 30 : 0);
         if ($logined) {
             // Record login information
             Yii::$app->db->createCommand('UPDATE {{%user}} SET [[login_count]] = [[login_count]] + 1, [[last_login_ip]] = :loginIp, [[last_login_time]] = :loginTime WHERE [[id]] = :id')->bindValues([':loginIp' => Yii::$app->getRequest()->userIP, ':loginTime' => time(), ':id' => Yii::$app->getUser()->getId()])->execute();
             // 写入用户登录日志
             UserLoginLog::write();
         }
         return $logined;
     } else {
         return false;
     }
 }
 /**
  * Displays a single User model.
  * @param integer $id
  * @return mixed
  */
 public function actionView($id)
 {
     $model = $this->findModel($id);
     $loginLogsDataProvider = new ActiveDataProvider(['query' => UserLoginLog::find()->where(['user_id' => $model->id])->orderBy(['id' => SORT_DESC])]);
     return $this->render('view', ['model' => $model, 'loginLogsDataProvider' => $loginLogsDataProvider]);
 }
Example #3
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getUserLoginLogs()
 {
     return $this->hasMany(UserLoginLog::className(), ['userId' => 'id']);
 }