如何在Yii2上设置重置密码功能?

如何在Yii2上设置重置密码功能?,yii2,Yii2,我有一个错误:“视图文件不存在:/var/www/html/myproject/frontend/views/common/mail/passwordResetToken html.php” 这是位于前端/models/PasswordResetRequestForm的代码 return Yii::$app ->mailer ->compose( ['html' => '/common/mail/passwordResetToken-html',

我有一个错误:“视图文件不存在:/var/www/html/myproject/frontend/views/common/mail/passwordResetToken html.php”

这是位于前端/models/PasswordResetRequestForm的代码

return Yii::$app
    ->mailer
    ->compose(
        ['html' => '/common/mail/passwordResetToken-html', 
         'text' => '/common/mail/passwordResetToken-text'],
        ['user' => $user]
    )
    ->setFrom([Yii::$app->params['supportEmail'] => Yii::$app->name . ' robot'])
    ->setTo($this->email)
    ->setSubject('Password reset for ' . Yii::$app->name)
    ->send();

可能是您的普通邮件路径错误,请尝试

return Yii::$app
    ->mailer
    ->compose(
        ['html' => '@common/mail/passwordResetToken-html', 
         'text' => '@common/mail/passwordResetToken-text'],
        ['user' => $user]
    )
    ->setFrom([Yii::$app->params['supportEmail'] => Yii::$app->name . ' robot'])
    ->setTo($this->email)
    ->setSubject('Password reset for ' . Yii::$app->name)
    ->send();
总体来说,检查main.php或main本地

 'components' => [
    .....
    'mailer' => [
        'class' => 'yii\swiftmailer\Mailer',
        'viewPath' => '@common/mail', //  <<<<----------- this  entry  
         ....
        ......
        'transport' => [
           ....
        ],
    ],
  ],
“组件”=>[
.....
'mailer'=>[
'class'=>'yii\swiftmailer\Mailer',

'viewPath'=>'@common/mail',//现在我有一个错误:“视图文件不存在:/var/www/html/myproject/frontend/mail/layouts/html.php”检查common/config main.php或main-local.php中的组件mailer,并用以下内容更新您的问题configuration@JanBeeck添加视图路径,就像我更新我的answer@JanBeeck我想你可以还原原始的“/common/mail/password…path…让我知道它不适用于“/common/mail/passwordResetToken html”,但它使用“@common/mail/passwordResetToken html”