zerockvnext/notice

v1.0.1 2018-01-30 08:17 UTC

This package is not auto-updated.

Last update: 2024-09-29 05:34:58 UTC


README

这个库是一个简洁的基于Laravel 5的Web应用程序通知中心

我只在Laravel 5上进行了测试,不确定它是否适用于Laravel 4。

内容

安装

  1. 使用Composer安装
composer require "zerockvnext/notice:~1.0"
  1. 打开您的 config/app.php 文件,并将以下内容添加到 providers 数组中
ZerockvNext\Notice\NoticeServiceProvider::class,
  1. 在同一个 config/app.php 文件中,并将以下内容添加到 aliases 数组中
'Notice' => ZerockvNext\Notice\NoticeFacade::class,
  1. 运行以下命令以发布包的配置和迁移文件
php artisan vendor:publish --provider="ZerockvNext\Notice\NoticeServiceProvider"
  1. 运行迁移
php artisan migrate

配置

  1. 打开您的 config/notice.php 文件,并将以下内容添加到 orm 数组中
'orm' => [
    'user' => \App\User::class
],

将其更改为您的用户ORM

使用

发送消息

    Notice::PostOffice()
        ->type(Notice::Consts()->typeMessage())
        ->sender(1) // Sender ID
        ->title('test message')
        ->message('message contents. this is a test message!')
        ->addReceiver(2) // Receiver ID
        ->addReceivers([3, 4, 5, 6, 7]) // Receivers
        ->send();

在此代码中,title() 和 message() 是 非必需的

Notice::Consts()->typeMessage() // message, someone send message to someone else.
Notice::Consts()->typeNotice() // notice, announcement by someone.
Notice::Consts()->typeSystem() // system, messages sent by the system.

type() 可以接收 'message'、'notice' 和 'system',默认类型是 'message'。

邮箱

接收消息

$Messages = Notice::MailBox()
    ->receiver(4) // Receiver ID
    ->getPagedMessages(1, 10); // Page, Limited, Type = null

$Totals = Notice::MailBox()
    ->totalMessages(); // Type = null

return [
    'messages' => $Messages, // Paged messages
    'totals'   => $Totals, // Total count of messages
];

或者像这样

Notice::MailBox()->receiver(4) // Receiver ID
$Messages = Notice::MailBox()->getPagedMessages(1, 10, Notice::Consts()->typeMessage());
$Totals   = Notice::MailBox()->totalMessages(Notice::Consts()->typeMessage());

return [
    'messages' => $Messages, // Paged messages
    'totals'   => $Totals, // Total count of messages
];

如果您设置了 $Type 的值,那么这个方法将返回相应类型的结果。

消息数量

Notice::MailBox()->receiver(4);

Notice::MailBox()->hasUnread(); // Type = null, return bool
Notice::MailBox()->hasUnread(Notice::Consts()->typeMessage());

Notice::MailBox()->totalUnread(); // Type = null, return unread count num
Notice::MailBox()->totalUnread(Notice::Consts()->typeMessage());

Notice::MailBox()->totalMessages(); // Type = null, return count num
Notice::MailBox()->totalMessages(Notice::Consts()->typeMessage());

Notice::MailBox()->countUnread(); // Type = null
// return array like this ['message' => 5, 'notice' => 2, 'system' => 3]

Notice::MailBox()->countUnread(Notice::Consts()->typeMessage());
// return array like this ['message' => 5]

获取指定消息

$Message = Notice::MailBox()->receiver(4)->getTransfer(1) // Transfer ID

return [
    'message' => $Message, // Message
];

注意:只能获取此接收者的消息。

阅读 / 未读

Notice::MailBox()->receiver(4)->read(1) // Transfer ID
Notice::MailBox()->receiver(4)->read([1,2,3,4]) // Transfer IDs

Notice::MailBox()->receiver(4)->readAll();
Notice::MailBox()->receiver(4)->readAll(Notice::Consts()->typeMessage()); // Type

Notice::MailBox()->receiver(4)->unread(1) // Transfer ID
Notice::MailBox()->receiver(4)->unread([1,2,3,4]) // Transfer IDs

注意:只有对应的接收者可以修改消息状态。

删除消息

Notice::MailBox()->receiver(4)->remove(1) // Transfer ID
Notice::MailBox()->receiver(4)->remove([1,2,3,4]) // Transfer IDs

查看删除消息

Notice::MailBox()->mode(Notice::Consts()->modeRecycled());

$Messages = Notice::MailBox()
    ->receiver(4)
    ->getPagedMessages(1, 10);

$Totals = Notice::MailBox()->totalMessages();

return [
    'messages' => $Messages, // Paged messages
    'totals'   => $Totals, // Total count of messages
];

您可以使用这些值

Notice::Consts()->modeAll() // return null, all messages
Notice::Consts()->modeWithoutRecycled() // return true, default, only not recycled
Notice::Consts()->modeRecycled() // return false, only recycled

许可证

MIT许可证。