我需要对评论系统进行电子邮件验证。来宾创建评论时,他可以写电子邮件,名称和评论正文。用户发送评论时,我需要验证是否向他发送电子邮件。如果他确认电子邮件,那么我需要发表评论。我该如何使用标准的Laravel电子邮件验证?我有模型Comment
,并且在表中有注释列:email
,email_verified_at
。也许我可以为模型Comment
实施Trait Email Verification?我不需要检查用户是否已验证其电子邮件地址。如果是,则用户应该能够发表评论。我需要每条评论都可以通过电子邮件验证给他。 1条评论= 1条经过验证的电子邮件(即使重复),我该怎么办?
在模型注释中,我尝试实现VerifyEmail:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
class Comment extends Model implements MustVerifyEmail
{
use Notifiable;
// ...
}
但是接下来我需要做什么?在文档中,只有一个中间件:->middleware('verified')
,这是针对用户模型的,我如何为注释模型发送通知电子邮件激活,如何为评论模型发送中间件?
答案 0 :(得分:1)
您可以简单地进行自定义验证。您可以添加 email_verified 布尔列,并将其默认设置为false。 制定一条路线和方法,将注释的 email_verified 值从false更改为true。 在评论显示页面中,您只显示 email_verified 列为真的评论。 现在,只要用户发表评论,就向他发送一封包含该评论URL的电子邮件,该电子邮件会将该评论的 email_verified 更改为true。
这是基本过程,您可以使用单独表,令牌和 laravel Observer 使其更加高效。
答案 1 :(得分:0)
我不会将电子邮件验证用于其他模型。
为评论模型创建观察者,然后将经过验证的布尔值添加到评论的迁移表中。
创建评论后,您的观察者将能够向来宾发送通知。