2016-11-27 2 views
0

В этом примере я имею в виду User, user 1 и user 2.Laravel 5.3 - Предотвратить дублирование уведомлений для уведомлений?

Если user 2 upvotes 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 дважды за то же upvote на user 2?

ответ

1

Вам необходимо будет сохранить уведомления в отдельной таблице с двумя полями: question_id, upvoter_id. Если строка уже существует для user 2 и question_id, не отправляйте электронное письмо, иначе добавьте строку и отправьте письмо.

Смежные вопросы