Class frontend\models\PasswordResetRequestForm
| Inheritance | frontend\models\PasswordResetRequestForm » yii\base\Model | 
|---|---|
| Source Code | https://github.com/yiisoft/yii2-app-advanced/blob/master/frontend/models/PasswordResetRequestForm.php | 
Password reset request form
Public Properties
| Property | Type | Description | Defined By | 
|---|---|---|---|
| frontend\models\PasswordResetRequestForm | 
Public Methods
| Method | Description | Defined By | 
|---|---|---|
| rules() | frontend\models\PasswordResetRequestForm | |
| sendEmail() | Sends an email with a link, for resetting the password. | frontend\models\PasswordResetRequestForm | 
Property Details
Method Details
| public void rules ( ) | 
                public function rules()
{
    return [
        ['email', 'trim'],
        ['email', 'required'],
        ['email', 'email'],
        ['email', 'exist',
            'targetClass' => '\common\models\User',
            'filter' => ['status' => User::STATUS_ACTIVE],
            'message' => 'There is no user with this email address.'
        ],
    ];
}
            
        Sends an email with a link, for resetting the password.
| public boolean sendEmail ( ) | ||
| return | boolean | 
                                 Whether the email was send  | 
                        
|---|---|---|
                public function sendEmail()
{
    /* @var $user User */
    $user = User::findOne([
        'status' => User::STATUS_ACTIVE,
        'email' => $this->email,
    ]);
    if (!$user) {
        return false;
    }
    
    if (!User::isPasswordResetTokenValid($user->password_reset_token)) {
        $user->generatePasswordResetToken();
        if (!$user->save()) {
            return false;
        }
    }
    return Yii::$app
        ->mailer
        ->compose(
            ['html' => 'passwordResetToken-html', 'text' => 'passwordResetToken-text'],
            ['user' => $user]
        )
        ->setFrom([Yii::$app->params['supportEmail'] => Yii::$app->name . ' robot'])
        ->setTo($this->email)
        ->setSubject('Password reset for ' . Yii::$app->name)
        ->send();
}