我决定在我的应用中实现实时通知。
通知需要在某些事件上发生,其中大多数事件需要在数据库中的表更新时触发。
为了让它实时发生,我目前正在使用带有推送器的免费帐户,并且如果应用程序扩展,我愿意升级。
但是,我对如何在表更新时触发 Laravel 5 事件感到非常困惑。
目前,我在数据库中有触发器,当对某些表进行更新时,触发器会将记录添加到通知
表中。理想情况下,每当在此处添加记录时,我都会触发 Laravel 5 事件,这又会使用推送器立即发送通知。
有人可以给我指导或好的教程吗?
<小时/>我本质上想清楚在哪里最好地测试是否已成功对数据库进行更新。每次调用 ->save() 方法时都可以强制转换 Laravel 事件,但在通知的情况下,该表会根据数据库触发器进行更新,因此没有相关代码。
最佳答案
假设当你说数据库触发器时,你指的是 Laravel 保存事件而不是实际的数据库触发器,你可以这样做:
class Notification extends Model {
public static boot() {
parent::boot();
static::created(function(Notification $notification) {
event(new PusherEvent());
});
}
}
class OtherModel extends Model {
public static boot() {
parent::boot();
static::updated(function(OtherModel $model) {
Notification::create();
});
}
}
OtherModel
类代表应用中具有此触发器来创建通知的所有其他模型。但是,如果您的触发器是实际的数据库触发器,则这将不起作用,我建议您转向创建触发器的 Eloquent 方式。
关于php - Laravel 5 使用推送器在数据库添加时触发通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32591113/