ipunkt / laravel-notify
为laravel 4提供即用对象式通知接口,包括为Twitter Bootstrap 3工作示例的javascript和css
Requires
- php: >=5.4.0
- illuminate/auth: ~4.0
- illuminate/database: ~4.0
- illuminate/support: ~4.0
This package is auto-updated.
Last update: 2023-03-23 03:06:51 UTC
README
为laravel 4提供即用对象式通知接口,包括为Twitter Bootstrap 3工作示例的javascript和css
安装
在composer.json中添加以下行
"require": {
"ipunkt/laravel-notify": "1.*"
}
将'Ipunkt\LaravelNotify\LaravelNotifyServiceProvider',
添加到app/config/app.php
中的providers
。服务提供者还为您应用注册了一个别名Notify
。
在命令行中发布数据库迁移
$> php artisan migrate --package="ipunkt/laravel-notify"
使用方法
在您的bootstrap中添加已提供的视图组合器以自动处理给定的视图脚本
View::composer('laravel-notify::notification', 'Ipunkt\LaravelNotify\Composers\ViewComposer');
视图组合器将一个变量$notifications
注入到视图中。它是一个包含所有创建或读取的通知的集合。
现在您可以使用此模板显示所有通知,或者您可以使用它与Bootstrap 3一起在navbar中使用,如下所示。
$> php artisan asset:publish ipunkt/laravel-notify
然后在您的布局中包含以下文件:/packages/ipunkt/laravel-notify/css/notify.css
和/packages/ipunkt/laravel-notify/js/notify.js
。后者需要存在jQuery。
然后在您的布局中创建一个<li id="notify"><a href="{{{ URL::route('notify.index') }}}"><i class="glyphicon glyphicon-warning-sign"></i></a></li>
在navbar导航列表中。
每当有通知要列出时,视图组合器首先在提供的notification
视图中填充$notifications
变量,然后javascript通过ajax调用获取这些通知并显示为菜单。如果没有javascript,链接将打开一个页面,其中将列出所有通知。
重要提示
不要忘记为包构建的路线设置过滤器。例如
Route::when('notify/*', 'auth');
此示例将auth
过滤器添加到所有包构建的路由中。
用例
1. 消息通知
如果您想发布简单的消息通知,请按以下操作通知用户
$user = Auth::user();
Notify::user($user, new \Ipunkt\LaravelNotify\Types\MessageNotification('Welcome on board!'));
// or
// Notify::users([$user, ...], new \Ipunkt\LaravelNotify\Types\MessageNotification('Welcome on board!'));
这向当前登录用户发送了一个简单的消息通知。
2. 特定通知
对于发送应用程序特定的通知,只需创建自己的NotificationType。
class MyNotification extends Ipunkt\LaravelNotify\Types\AbstractNotification {
}
然后您可以根据需要修改读取和完成操作。您还可以添加自己的自定义操作。您不必只使用这3个操作:created
、read
、done
。您可以构建自己的自定义工作流。试试看!
AbstractNotification将用户发送到完成操作,如果他阅读了通知。重写此行为以拥有自己的工作流。以done
结束可能是一个好主意,而以created
开始是由当前实现固定的。