1、简介

Notifynder 以简单的方式提供了强大的消息通知管理功能:其提供的完整API可用于对消息通知的各种处理,比如存储、检索以及组织处理成百上千条通知的代码库。有了Notifynder,你可以在几分钟内在你的Laravel项目中“启用”消息通知功能。

目前支持的数据库包括MySQL、Postgres和SQLite。

2、安装

使用Composer安装该扩展:

composer require fenos/notifynder

然后到config/app.php中注册服务提供者:

Fenos\Notifynder\NotifynderServiceProvider::class,

以及门面:

'Notifynder' => Fenos\Notifynder\Facades\Notifynder::class,

发布该扩展包的配置文件到config目录:

php artisan vendor:publish --provider="Fenos\Notifynder\NotifynderServiceProvider"

最后运行数据库迁移生成相应数据表:

php artisan migrate

3、快速上手

创建分类

在开始使用Notifynder之前,我们需要简单了解“分类”这一术语在Notifynder中的职责,分类是消息通知的主体,通过唯一的名称来区分,并且拥有对应的通知文本,每个通知都要绑定到一个分类上,以便于管理和维护。

首先我们使用Notifynder提供的Artisan命令来创建一个分类 :

php artisan notifynder:create:category "user.following" "{from.username} started to follow you"

这会在数据库notification_categories表中创建一条新纪录:

功能实现

接下来确定要被通知的模型,通常我们选择User模型,这个被选择的模型类要使用 Notifable Trait:

use Fenos\Notifynder\Notifable;class User extends Model{use Notifable;
}

这样我们的模型实体就可以处理消息通知了:

$user = User::find(1);$user->getNotifications($limit = null, $paginate = null, $order = 'desc');
$user->getNotificationsNotRead($limit = null, $paginate = null, $order = 'desc');
$user->getLastNotification();
$user->countNotificationsNotRead($category = null);
$user->readAllNotifications();

注:如果你不想使用 Notifable Trait,也可以直接使用Notifynder门面上的对应方法。

4、发送通知

发送通知非常简单:

$from_user_id = 1;
$to_user_id = 2;Notifynder::category('user.following')->from($from_user_id)->to($to_user_id)->url('http://laravelacademy.org/notifications')->send();

发送通知后我们来检索通知:

$userNotified = User::find($to_user_id);
dd($userNotified->getNotificationsNotRead());

还可以一次发送多个通知,这里我们给多个用户发送通知:

// It send a notification to all the users
try {$this->notifynder->loop($users, function(NotifynderBuilder $builder, $user) {$builder->category('sayhello')->from(1)->to($user->id)->url('http://localhost')->extra(compact('period_day'));})->send();
} catch (EntityNotIterableException $e) {
} catch (IterableIsEmptyException $e) {
}

laravel Notifynder 以简单的方式提供了强大的消息通知管理功能相关推荐

  1. 怎么在SAP MM库存管理中使用简单的货架管理功能

    摘要:SAP的WM或WMS提供了比较完整的立体货架管理功能,但是,很多的业务场景下,并不需要那么完整的解决方案,业务部门可能仅需要简单地记录一下物料存放的位置,以方便下次比较准确地知道货物存放在位置. ...

  2. php 隐式路由,关于Laravel 7 的简单隐式路由模型绑定

    搜索热词 Laravel 的下一个主要发行版本 ,你可以直接在路由定义中自定义隐式路由模型绑定: Route::get('/posts/{post:slug}',function (Post $pos ...

  3. 以服务的方式提供站点基础功能支持

    Web站点除了提供内容展示,业务逻辑处理外,还有很多看不到的操作,如:错误日志,后台管理,权限分配,访问统计等.如果只有一个站点,完全可以根据需要逐步添加,但实际的情况是往往有多个子站点,这时这些重复 ...

  4. php中间件怎么使用,laravel框架中间件简单使用方法示例

    本文实例讲述了laravel框架中间件简单使用方法.分享给大家供大家参考,具体如下: laravel内置了一个中间件来验证用户是否经过认证,如果用户没有经过认证,中间件会将用户重定向到登录页面,否则如 ...

  5. laravel 模型里自定义属性_关于Laravel 7 的简单隐式路由模型绑定

    Laravel 的下一个主要发行版本 ,你可以直接在路由定义中自定义隐式路由模型绑定: Route::get('/posts/{post:slug}', function (Post $post) { ...

  6. IPoE方式提供IPTV业务解决方案

    IPTV承载网融合在运营商的整个城域网络架构中,和其他业务在城域网共用一个接入平台,IPTV业务经由在宽带接入网中DSLAM.接入交换机.汇聚交换机等设备汇聚,由业务控制管理设备(BRAS或SR)充当 ...

  7. 最简单的方式实现一棵二叉树

    使用最简单的方式实现看树写代码C++实现 这段代码之所以能够正常工作,是因为数组元素的地址是常量表达式.我们可以使用这种 标记法定义任何链式结构,但是这种初始化方法难以记住,所以在构建这种结构时很容易 ...

  8. 如何用最简单的方式理解傅立叶变换?

    你还在因为傅立叶挂科而头疼不已吗? 傅立叶变换经常被称为大学的杀手课程,傅立叶变换不仅仅是一个数学工具,更是一种可以彻底颠覆一个人以前世界观的思维模式. 但不幸的是,傅立叶变换的公式看起来太复杂了,所 ...

  9. python3 爬虫第二步Selenium 使用简单的方式抓取复杂的页面信息

    Selenium 简介 该系列专栏上一篇爬虫文章点击这里. 网站复杂度增加,爬虫编写的方式也会随着增加.使用Selenium 可以通过简单的方式抓取复杂的网站页面,得到想要的信息. Selenium ...

最新文章

  1. 单片机红绿灯电路灯有几种_LED路灯电源防雷与设计方案
  2. 《数学之美》第11章 如何确定网页和查询的相关性
  3. Java1.使用二分搜索算法查找任意N个有序数列中的指定元素。 2.通过上机实验进行算法实现。 3.保存和打印出程序的运行结果,并结合程序进行分析,上交实验报告。 4.至少使用两种方法进行编程,直接查
  4. ANSYS提取刚度矩阵
  5. 7-2 简单计算器 (13 分)
  6. 【openMV】色块追踪
  7. 【人脸识别】VGGFace2数据集介绍
  8. 优秀PSD电商促销BANNER模板|垂直化内容电商页面设计,需要注意哪些问题?
  9. VS2008源代码管理软件组合-visualSVN Server+TortoiseSVN+AnkhSvn
  10. VC使用命令行编译很复杂
  11. 神经网络基本原理简明教程之线性回归预测房价
  12. 数字电视的格式(BT.601 BT.709 BT.2020)和接口(BT.656 BT.1120 BT.2077)
  13. scp登录The authenticity of host 192.168.0.xxx can't be established. 的问题
  14. Google搜索技巧语法
  15. 撩妹情话套路大全 2021高级情话套路好甜齁
  16. [SRv6]《SRv6网络编程》SRv6 OAM与随路网络测量(2/2:IFIT)
  17. SQL使用函数处理数据
  18. 软件对硬盘性能测试,硬盘性能检测详细图文教程
  19. 贪心算法-活动安排问题
  20. 苹果服务器维护时间表2019,ios 内购详解(2019)

热门文章

  1. MongoTemplate crud 封装
  2. CMOS反相器之功耗分析
  3. AndroidStudio的几个个性的配置和个人笔记
  4. Microblaze入门
  5. 用思维导图写小说的提纲
  6. 2022年全球市场木材粉碎机总体规模、主要生产商、主要地区、产品和应用细分研究报告
  7. COMSOL中的周期性条件与对称性条件
  8. 嵌入式UWB定位测距设备开发实战(6)硬件之UWB测距选型
  9. 【结构体Struct——简单使用】
  10. 阿里云服务器安装mysql、jdk、redis、tomcat