我在我的用户模型上使用 Laravel Notifiable trait,因此用户必须在能够登录之前验证他们的电子邮件地址,这很好用。但是,我想将此电子邮件的发送延迟到应用程序中的稍后时间点(当管理员手动确认每个用户时)。如何防止 Laravel 在创建帐户时发送验证电子邮件?手动创建用户时,您可以使用 SendsPasswordResetEmails trait 在您的应用程序中随时发送验证电子邮件:use SendsPasswordResetEmails;$this->sendResetLinkEmail($request);问题是我在标准 Laravel 身份验证脚手架中找不到此代码以防止它发生。
2 回答
扬帆大鱼
TA贡献1799条经验 获得超9个赞
该Notifiable
特性来说并不算什么发送电子邮件验证的用户,但MustVerifyEmail
界面,你的User
模型实现。
因此,为了手动执行此操作,您需要做的是从
EventServiceProvider
$listen
映射:
Registered::class => [ SendEmailVerificationNotification::class, ]
然后稍后您可以找到User
要将电子邮件验证发送到的目标,并像这样发送电子邮件:
User::find($userId)->sendEmailVerificationNotification();
UYOU
TA贡献1878条经验 获得超4个赞
它是MustVerifyEmail
Laravel 用来施展魔法的接口。Laravel 检查要通知的类(即User
)是否实现了该MustVerifyEmail
接口,如果是,则发出验证通知。
虽然您可以Registered
从 中删除事件侦听器EventServiceProvider
,但也可以implements MustVerifyEmail
从User
类中删除。
通过保持事件侦听器完好无损并简单地MustVerifyEmail
从User
类中删除接口,您可以保持自动电子邮件验证系统完好无损,以防您确实想创建另一种类型的User
类确实会收到自动电子邮件验证通知。
因此,implements MustVerifyEmail
从您的User
课程中删除,然后sendEmailVerificationNotification()
在您想要发送验证电子邮件时手动呼叫您的用户。
- 2 回答
- 0 关注
- 227 浏览
添加回答
举报
0/150
提交
取消