laravel Notifynder 以简单的方式提供了强大的消息通知管理功能
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 以简单的方式提供了强大的消息通知管理功能相关推荐
- 怎么在SAP MM库存管理中使用简单的货架管理功能
摘要:SAP的WM或WMS提供了比较完整的立体货架管理功能,但是,很多的业务场景下,并不需要那么完整的解决方案,业务部门可能仅需要简单地记录一下物料存放的位置,以方便下次比较准确地知道货物存放在位置. ...
- php 隐式路由,关于Laravel 7 的简单隐式路由模型绑定
搜索热词 Laravel 的下一个主要发行版本 ,你可以直接在路由定义中自定义隐式路由模型绑定: Route::get('/posts/{post:slug}',function (Post $pos ...
- 以服务的方式提供站点基础功能支持
Web站点除了提供内容展示,业务逻辑处理外,还有很多看不到的操作,如:错误日志,后台管理,权限分配,访问统计等.如果只有一个站点,完全可以根据需要逐步添加,但实际的情况是往往有多个子站点,这时这些重复 ...
- php中间件怎么使用,laravel框架中间件简单使用方法示例
本文实例讲述了laravel框架中间件简单使用方法.分享给大家供大家参考,具体如下: laravel内置了一个中间件来验证用户是否经过认证,如果用户没有经过认证,中间件会将用户重定向到登录页面,否则如 ...
- laravel 模型里自定义属性_关于Laravel 7 的简单隐式路由模型绑定
Laravel 的下一个主要发行版本 ,你可以直接在路由定义中自定义隐式路由模型绑定: Route::get('/posts/{post:slug}', function (Post $post) { ...
- IPoE方式提供IPTV业务解决方案
IPTV承载网融合在运营商的整个城域网络架构中,和其他业务在城域网共用一个接入平台,IPTV业务经由在宽带接入网中DSLAM.接入交换机.汇聚交换机等设备汇聚,由业务控制管理设备(BRAS或SR)充当 ...
- 最简单的方式实现一棵二叉树
使用最简单的方式实现看树写代码C++实现 这段代码之所以能够正常工作,是因为数组元素的地址是常量表达式.我们可以使用这种 标记法定义任何链式结构,但是这种初始化方法难以记住,所以在构建这种结构时很容易 ...
- 如何用最简单的方式理解傅立叶变换?
你还在因为傅立叶挂科而头疼不已吗? 傅立叶变换经常被称为大学的杀手课程,傅立叶变换不仅仅是一个数学工具,更是一种可以彻底颠覆一个人以前世界观的思维模式. 但不幸的是,傅立叶变换的公式看起来太复杂了,所 ...
- python3 爬虫第二步Selenium 使用简单的方式抓取复杂的页面信息
Selenium 简介 该系列专栏上一篇爬虫文章点击这里. 网站复杂度增加,爬虫编写的方式也会随着增加.使用Selenium 可以通过简单的方式抓取复杂的网站页面,得到想要的信息. Selenium ...
最新文章
- 单片机红绿灯电路灯有几种_LED路灯电源防雷与设计方案
- 《数学之美》第11章 如何确定网页和查询的相关性
- Java1.使用二分搜索算法查找任意N个有序数列中的指定元素。 2.通过上机实验进行算法实现。 3.保存和打印出程序的运行结果,并结合程序进行分析,上交实验报告。 4.至少使用两种方法进行编程,直接查
- ANSYS提取刚度矩阵
- 7-2 简单计算器 (13 分)
- 【openMV】色块追踪
- 【人脸识别】VGGFace2数据集介绍
- 优秀PSD电商促销BANNER模板|垂直化内容电商页面设计,需要注意哪些问题?
- VS2008源代码管理软件组合-visualSVN Server+TortoiseSVN+AnkhSvn
- VC使用命令行编译很复杂
- 神经网络基本原理简明教程之线性回归预测房价
- 数字电视的格式(BT.601 BT.709 BT.2020)和接口(BT.656 BT.1120 BT.2077)
- scp登录The authenticity of host 192.168.0.xxx can't be established. 的问题
- Google搜索技巧语法
- 撩妹情话套路大全 2021高级情话套路好甜齁
- [SRv6]《SRv6网络编程》SRv6 OAM与随路网络测量(2/2:IFIT)
- SQL使用函数处理数据
- 软件对硬盘性能测试,硬盘性能检测详细图文教程
- 贪心算法-活动安排问题
- 苹果服务器维护时间表2019,ios 内购详解(2019)