Привет, я новичок в yii и ниже, это моя функция UserIdentiy. Пожалуйста, дайте мне знать, как я могу добавить функцию помню меня
public function authenticate() { $users = array(); if ($this->usertype == "registration") { $users = Login::model()->findByAttributes(array('email' => $this->username)); $users = $users->attributes; } if (empty($users)) $this->errorCode = self::ERROR_USERNAME_INVALID; elseif (!empty($users['password']) && $users['password'] !== md5($this->password)) $this->errorCode = self::ERROR_PASSWORD_INVALID; elseif (!empty($users['status']) && $users['status'] !== 1) $this->errorCode = self::STATUS_NOT_ACTIVE; else { $this->_id = $users->id; $this->errorCode = self::ERROR_NONE; } return !$this->errorCode; }
В protected\config\main.php
массив конфигурации присутствует в этом массиве, перейдите к индексу component
. Внутри этого user
массива ассоциативное индексированное значение 'allowAutoLogin'
должно иметь логическое значение true
Поэтому он должен выглядеть так
'components' => array( 'user' => array( // enable cookie-based authentication 'allowAutoLogin' => true, ), ...
И вы должны использовать следующее свойство наряду с методом входа, приведенным ниже, вы можете легко запомнить меня.
class LoginForm extends CFormModel { public $username; public $password; public $rememberMe; private $_identity;
метод входа должен быть таким, как в классе модели входа
public function login() { if($this->_identity===null) { $this->_identity=new UserIdentity($this->username, $this->password); $this->_identity->authenticate(); } if($this->_identity->errorCode===UserIdentity::ERROR_NONE) { $duration=$this->rememberMe ? 3600*24*30 : 0; // 30 days Yii::app()->user->login($this->_identity,$duration); return true; } else return false; }
использованиемpublic function login() { if($this->_identity===null) { $this->_identity=new UserIdentity($this->username, $this->password); $this->_identity->authenticate(); } if($this->_identity->errorCode===UserIdentity::ERROR_NONE) { $duration=$this->rememberMe ? 3600*24*30 : 0; // 30 days Yii::app()->user->login($this->_identity,$duration); return true; } else return false; }
данныхpublic function login() { if($this->_identity===null) { $this->_identity=new UserIdentity($this->username, $this->password); $this->_identity->authenticate(); } if($this->_identity->errorCode===UserIdentity::ERROR_NONE) { $duration=$this->rememberMe ? 3600*24*30 : 0; // 30 days Yii::app()->user->login($this->_identity,$duration); return true; } else return false; }
использованиемpublic function login() { if($this->_identity===null) { $this->_identity=new UserIdentity($this->username, $this->password); $this->_identity->authenticate(); } if($this->_identity->errorCode===UserIdentity::ERROR_NONE) { $duration=$this->rememberMe ? 3600*24*30 : 0; // 30 days Yii::app()->user->login($this->_identity,$duration); return true; } else return false; }
данныхpublic function login() { if($this->_identity===null) { $this->_identity=new UserIdentity($this->username, $this->password); $this->_identity->authenticate(); } if($this->_identity->errorCode===UserIdentity::ERROR_NONE) { $duration=$this->rememberMe ? 3600*24*30 : 0; // 30 days Yii::app()->user->login($this->_identity,$duration); return true; } else return false; }
И это основной код для запоминания функции
Yii::app()->user->login($this->_identity,$duration);