- .env文件中修改为QUEUE_DRIVER=database
- php artisan queue:table 创建 数据库表,执行成功后,会生成一个新的migration for the queue jobs database table,
- php artisan migrate 执行成功后,jobs这个表会在mysql数据中出现,至于里边的字段不用关心
4.php artisan make:job SendMessage 会生成app\job\SendMessage.php
SendMessage.php 类会有两个方法:__construct() 初始化job实例,handle()执行具体的job
修改__construct(Notices $notice) Notices就是你创建的Notices模型
在SendMessage类中定义
private notices = null;
public function __construct(Noticesnotice)
{
this−>notices=
notice;
}
修改handle方法
public function handle()
{
//通知每个用户
users=UserModel::all();foreach(
users as user){user->addNotice($this->notices);//addNotice方法是定义在UserModel中,使用模型关联
}
}
在NoticesController中
public function store() {
newNotice=Notices::create(request([‘title′,′content′]));if(!empty(
newNotice)){
this−>dispatch(newSendMessage(
newNotice));
return redirect(‘admin/notices’);
}else{
return ‘创建失败’;
}
}
store方法接受传过来的“通知的数据”,然后插入到数据库中,然后使用
this−>dispatch(newSendMessage(
newNotice));将通知发送出去
5.php artisan queue:work
6.测试通知功能ok不ok就行了