是否可以在创建记录后发送通知?
我有一个游戏模型和一个用户模型,两者通过标记为captain_id和organizer_id的字段连接(它们都是用户ID的引用)。现在我想要的是能够向两个用户发送关于新创建的游戏模型的通知。
我一直在到处搜索,而且我会继续这样做,但我在帖子/教程/视频方面并没有发现太多类似于我的困境。
发布于 2017-11-20 21:18:26
如果您使用的是Laravel5.5,我会强烈建议您进入Laravel事件文档。查看模型类(照明/数据库/雄辩/模型),当创建一个对象时,它会触发一个事件(特别是fireModelEvent)。您可以做的是在特定的模型事件上注册一个通知处理程序,并让该处理程序发送您想要的通知(例如SMS、电子邮件、Slack等)。
当您想要处理特定事件时,我将执行以下操作(我在我的示例中使用了用户模型):
php artisan make:event UserCreateduses Notifiable添加到用户模型中。broadcastOn()函数,以执行您希望它做的事情。发布于 2017-11-20 21:27:03
以乔恩的回答为基础,举个例子。您可以在模型上添加一个启动方法,该方法将触发模型事件(比如保存/创建)。
protected static function boot(){
static::saved(function($thisModel){
if (($thisModel->wasRecentlyCreated == true) && ($thisModel->attributes['status'] == 1)){
$thisModel->send_created_mail($thisModel->id);
}
else{
if ($thisModel->isDirty('status')) {
$thisModel->send_status_mail($thisModel->attributes['status']);
}
}
});
}$thisModel将是保存的模型的实例,因此您可以访问它的属性。如果您的模型扩展了基本模型或类似的内容,请确保在静态::saved()之前添加父级::boot()。
https://stackoverflow.com/questions/47401110
复制相似问题