我正在开发一个相当简单的应用程序,我希望我的用户能够订阅通知。所以系统应该:
- 当他们订阅的某个事件发生时发送通知。
- 向他们选择的渠道发送通知(电子邮件或 slack)
下面是每个用户可以订阅的不同通知的示例。
我想知道如何使用 Laravel 做到这一点。我的第一个想法是:
- 在表上创建一个
notifications
JSON 列users
,并将其存储起来(可能使用管理大量用户设置课程中的知识。)
{
"todo": {
"assigned": [
{
"email": true,
"slack": true
}
],
"mentioned": [
{
"email": true,
"slack": true
}
]
},
"project": {
"created": [
{
"email": true,
"slack": true
}
]
}
}
但是,我不确定这是否是好的做法。此外,我也不确定如何实际动态发送通知。
为了发送它,我想使用 Laravel 通知系统:
Notification::send($user, new TodoCreated($todo));
我不确定这是否是最好的方法,或者使用事件/侦听器设置是否更有意义?一个
另外,我可以利用类上的via()
方法Notification
根据用户设置动态指定频道吗?
任何投入将不胜感激。