下次用户在Laravel 5.4 Application中登录时通知用户

时间:2017-05-16 22:04:44

标签: php laravel-5.4

我正在寻找一种解决方案,通知所有用户在应用中发生X活动。

我不是通过邮件或短信寻找通知。因为此特定通知将发送给所有用户,可能是1000到25000个用户之间的任何用户。发送1000个邮件或短信是浪费资源。

我想通知用户注意到的东西,即他们会阅读。例如:如果X活动今天发生了。并且Y用户在10天后登录他/她必须能够看到通知(我想在这种情况下flash消息不起作用)。

什么是最好和最有效的方式?如果使用数据库的通知是我认为的方式。如何创建单个通知(数据库中的单个条目)并确保所有用户在下次登录时读取该通知?没有创建1000行?

1 个答案:

答案 0 :(得分:1)

我认为在数据库中存储通知也是可行的方法。

如果您在UserNotification模型之间添加多对多关系,并在关系数据透视表上添加is_read标记。

然后,当用户阅读通知时,您将is_read标记更新为1。或者,如果您不需要保留该用户的通知,则可以删除该关系,从而减少过时记录的存储。

修改

如果每个用户都会看到每个通知,那么您可以在last_login_at模型上存储User时间戳,每次用户登录时都会更新。

然后,每次用户登录时,查找自Notification以来创建的所有last_login_at,并将其显示给用户。