Laravel 5.7自定义重新发送邮件方法

Laravel 5.7自定义重新发送邮件方法,laravel,Laravel,我自定义了我的LoginController,以防止用户在帐户未验证时登录,因为这不是默认的Laravel行为 现在一个用户正在进行日志记录,并且帐户没有被验证,我问他是否希望有一个新的邮件通知来验证他的帐户。由于我没有$request->user(),我不知道如何重写此方法: VerificationController.php 公共功能重新发送(请求$Request) { 如果($request->user()->hasVerifiedEmail()){ 返回重定向($this->redir

我自定义了我的LoginController,以防止用户在帐户未验证时登录,因为这不是默认的Laravel行为

现在一个用户正在进行日志记录,并且帐户没有被验证,我问他是否希望有一个新的邮件通知来验证他的帐户。由于我没有
$request->user()
,我不知道如何重写此方法:

VerificationController.php

公共功能重新发送(请求$Request)
{
如果($request->user()->hasVerifiedEmail()){
返回重定向($this->redirectPath());
}
$request->user()->sendEmailVerificationNotification();
return back()->带有('resent',true);
}

我曾考虑过获取用户的邮件,但我如何才能根据他的邮件而不是像Laravel所期望的那样基于
user()
向他发送电子邮件?

您有两个选项,其中最简单的是允许
重新发送
以接受用户
id
参数,然后,当用户登录且未经验证时,您将其重定向到
重新发送
页面,并显示其
id
,以在没有活动用户会话的情况下识别其帐户

例如,您的登录控制器如下所示:

if(!$user->hasvifiedemail()()){
return redirect()->to(URL::signedRoute('ressend',['id'=>$user->id]);
}
以及您的
VerificationController@resend
方法将如下所示:

公共功能重新发送(请求$Request)
{
如果($request->input('id')&&$request->hasValidSignature()){
$user=user::findOrFail($request->input('id'));
}
$user=$user?:$request->user();
如果($user->hasvirifiedemail()){
返回重定向($this->redirectPath());
}
$user->sendEmailVerificationNotification();
return back()->带有('resent',true);
}

这就是说,Laravel包含了要求电子邮件验证的中间件:它确实允许登录,但在用户验证之前它不允许用户做任何事情,除非您有理由完全阻止登录,否则中间件满足您的需要。您可以找到有关中间件的信息。

您有两个选项,其中最简单的是允许
重新发送
以接受用户
id
参数,然后,当用户登录且未经验证时,您将其重定向到
重新发送
页面,并显示其
id
,以在没有活动用户会话的情况下识别其帐户

例如,您的登录控制器如下所示:

if(!$user->hasvifiedemail()()){
return redirect()->to(URL::signedRoute('ressend',['id'=>$user->id]);
}
以及您的
VerificationController@resend
方法将如下所示:

公共功能重新发送(请求$Request)
{
如果($request->input('id')&&$request->hasValidSignature()){
$user=user::findOrFail($request->input('id'));
}
$user=$user?:$request->user();
如果($user->hasvirifiedemail()){
返回重定向($this->redirectPath());
}
$user->sendEmailVerificationNotification();
return back()->带有('resent',true);
}
这就是说,Laravel包含了要求电子邮件验证的中间件:它确实允许登录,但在用户验证之前它不允许用户做任何事情,除非您有理由完全阻止登录,否则中间件满足您的需要。您可以找到有关中间件的信息