PS:本次主要记录一下laravel 自带的消息通知Notification的实现
1.生成数据库,可以使用迁移
- 在项目目录下的cmd中运行 artisan命令
php artisan notifications:table
php artisan migrate
- 在user表里增加一个notification_count 字段,记录未读通知数量
2.生成消息通知类
这里模拟点赞通知
php artisan make:notification UserSupport
如果implements ShouldQueue这个接口的话就会异步队列执行,如果去掉的话就是同步执行。
<?php
/**
* 模拟用户点赞通知
* laravel 通知表 notifications
* 点赞表 user_support
* 作者表 users
* 用户表 user_info
*/
namespace App\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;
use App\Models\UserSupport as UserSupportModel;
class UserSupport extends Notification implements ShouldQueue
{
use Queueable;
public $support;
public function __construct(UserSupportModel $support)
{
// 注入回复实体,方便 toDatabase 方法中的使用
$this->support = $support;
}
public function via($notifiable)
{
// 开启通知的频道
return ['mail','database'];
}
public function toMail($notifiable)
{
return (new MailMessage)
->line('The introduction to the notification.')
->action('Notification Action', 'www.baidu.com')
->line('Thank you for using our application!');
}
public function toDatabase