我在此示例中使用了User
,user 1
和user 2
。
如果user 2
提出user 1
个问题,user 1
会收到一封电子邮件,并在数据库中插入toArray
通知,如下所示:
public function toArray($notifiable){
return [
'upvoter_username' => $this->event->upvoter->username,
'question_id' => $this->event->question->id,
'question_title' => $this->event->question->title,
];
}
我面临的问题是,当user 2
返回downvotes
同样的问题(没有问题),然后再次重新提出问题(此处发布)。
简而言之,user 1
再次收到相同的电子邮件,并再次将通知插入数据库; user 1
只应首次通知一次。
如何通过user 1
确保通知 不 两次通知可通知的user 2
相同的upvote?
答案 0 :(得分:1)
您必须将通知存储在单独的表中,其中包含两个字段:question_id,upvoter_id。如果user 2
和question_id已经存在一行,请不要发送电子邮件,否则添加行并发送邮件。