首页 > 解决方案 > 重新发送电子邮件的功能将我带到主页并且在给定的功能中什么都不做 - Laravel

问题描述

如果注册后的第一个邮件没有发送,我有这个简单的点击功能可以向用户发送电子邮件。但是,当我单击该按钮时,它什么也没做,而是将我带到主页。

重发功能:

protected function resend()
    {
        $user = Account::where('email', Auth::user()->email)->first();
        $user->verifyToken = Str::random(40);
        $user->save();

        $this->sendEmail($user);
        return redirect(route('verifyEmail'))->with('user',$user)->with('success', 'A link has been sent to your email');

    }

Route::post('/resend/email', 'Auth\RegisterController@resend')->name('resendEmail');

的HTML:

<form action=" {!! route('resendEmail') !!}" method="POST">
   @csrf
      <button class="btn btn-default" type="submit" value="Submit">Resend Verification Link</button>
</form>

通过添加到构造函数修复的中间件问题: $this->middleware('auth', ['except' => ['resendEmail']]);

标签: phplaravelauthentication

解决方案


RegisterController 在__construct方法上添加:

$this->middleware('auth', ['except' => ['account/security/resend/email']]);

推荐阅读