消息通知提醒 laravel notification

更新日期: 2019-05-08 阅读次数: 794 字数: 319 分类: Laravel

参考 https://laravel.com/docs/5.5/notifications

创建提醒

php artisan make:notification InvoicePaid

app/Notifications 目录下会新增一个对应的 class

场景

  • 关注的人有发新帖子
  • 自己的帖子有人回复
  • 自己的回复有人回复

单独发送消息 VS 群发消息

给指定用户发送

$user->notify(new InvoicePaid($invoice));

群发消息

Notification::send($users, new InvoicePaid($invoice));

通知的方式

  • 邮件。自带的邮件模板非常给力。我觉得有必要尝试一下。
  • 短信
  • 聊天软件消息。例如,Slack
  • 存数据库
  • 等等

通过 via 函数指定。

Database Notifications

建表

php artisan notifications:table
php artisan migrate

标记为已读

You may also use a mass-update query to mark all of the notifications as read without retrieving them from the database:

$user = App\User::find(1);
$user->unreadNotifications()->update(['read_at' => now()]);

消息队列

当单个事件触发的消息量巨大,例如,大 V 发twitter,大量粉丝需要接收消息。或者,消息需要调用三方 API 时,就需要用到队列。

我看 Laravel 支持的不错,能节省很大的工作量。

但是最终我还是选择自己实现

没有使用 Laravel 内置 Notification 的原因

  • 我的使用场景非常单一,只需要提供未读消息即可
  • 在数据量大时,自己的实现方案更可控

爱评论不评论

近期节日

2019年07月23日 大暑
2019年07月30日 非洲妇女日
2019年08月01日 八一建军节
2019年08月06日 国际电影节
2019年08月07日 七夕
2019年08月08日 立秋
2019年08月15日 日本投降日
2019年08月15日 中元节
2019年08月23日 处暑
2019年09月03日 抗日胜利纪念日
2019年09月08日 白露
2019年09月08日 国际扫盲日
查看更多节日