我已经设置了自己的自定义通知,以联系用户以验证其电子邮件。他们在注册时没有收到验证电子邮件。他们注册,我给他们打电话并筛选他们,然后批准他们的注册。在我批准他们之后,他们会收到一封验证电子邮件。所有这一切都很好。但是,当用户单击电子邮件中的验证链接时,会将其带到登录页面,但在数据库中,email_verified_at
列永远不会更新并带有时间戳。我已经阅读了多个教程,却无法弄清为什么会这样。
这是我用于筛选过程的控制器中的通知功能:
public function toMail($notifiable)
{
if (static::$toMailCallback) {
return call_user_func(static::$toMailCallback, $notifiable);
}
return (new MailMessage)
->subject(Lang::get('Verify Email Address'))
->line(Lang::get('Please verify email.'))
->action(
Lang::get('Verify Email Address'),
$this->verificationUrl($notifiable)
)
->line(Lang::get('If you did not create an account, no further action is required.'));
}
这是我的验证控制器:
public function __construct()
{
$this->middleware('auth');
$this->middleware('signed')->only('verify');
$this->middleware('throttle:6,1')->only('verify', 'resend');
}
当我将鼠标悬停在邮件陷阱中的链接上时,它具有有效的URL,并且如上所述,重定向到登录屏幕。 我可以提供所请求的任何其他代码,如果不需要的话,我只是不想在此处粘贴5个文件,因为所有其他功能似乎都可以正常工作。如果有人可以帮助我弄清楚为什么会发生这种情况,将不胜感激。