Class common\models\LoginForm
Inheritance | common\models\LoginForm » yii\base\Model |
---|---|
Source Code | https://github.com/yiisoft/yii2-app-advanced/blob/master/common/models/LoginForm.php |
Login form
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$password | common\models\LoginForm | ||
$rememberMe | common\models\LoginForm | ||
$username | common\models\LoginForm |
Public Methods
Method | Description | Defined By |
---|---|---|
login() | Logs in a user using the provided username and password. | common\models\LoginForm |
rules() | common\models\LoginForm | |
validatePassword() | Validates the password. | common\models\LoginForm |
Protected Methods
Method | Description | Defined By |
---|---|---|
getUser() | Finds user by $username | common\models\LoginForm |
Property Details
Method Details
Finds user by $username
protected common\models\User|null getUser ( ) |
protected function getUser()
{
if ($this->_user === null) {
$this->_user = User::findByUsername($this->username);
}
return $this->_user;
}
Logs in a user using the provided username and password.
public boolean login ( ) | ||
return | boolean |
Whether the user is logged in successfully |
---|
public function login()
{
if ($this->validate()) {
return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600 * 24 * 30 : 0);
}
return false;
}
public void rules ( ) |
public function rules()
{
return [
// username and password are both required
[['username', 'password'], 'required'],
// rememberMe must be a boolean value
['rememberMe', 'boolean'],
// password is validated by validatePassword()
['password', 'validatePassword'],
];
}
Validates the password.
This method serves as the inline validation for password.
public void validatePassword ( $attribute, $params ) | ||
$attribute | string |
The attribute currently being validated |
$params | array |
The additional name-value pairs given in the rule |
public function validatePassword($attribute, $params)
{
if (!$this->hasErrors()) {
$user = $this->getUser();
if (!$user || !$user->validatePassword($this->password)) {
$this->addError($attribute, 'Incorrect username or password.');
}
}
}