Laravel 5 使用推送器添加数据库时触发的通知
Laravel 5 notifications triggered on database additions using pusher
我决定在我的应用程序中实现实时通知。
通知需要发生在某些事件上,其中大部分事件需要在数据库更新 table 时触发。
为了让它实时发生,我目前正在使用带有推送器的免费帐户,如果应用程序扩展,我愿意升级。
但是我很迷茫如何让 Laravel 5 事件触发 table 的更新。
目前我在数据库中有触发器,当对某些 table 进行更新时,它会将记录添加到 notifications
table。理想情况下,每当在此处添加记录时,我都会触发 Laravel 5 事件,这又会使用推送器即时发送通知。
谁能给我指导或好的教程?
我基本上想弄清楚在何处最好地测试是否已成功对数据库进行更新。 Laravel 每次调用 ->save() 方法时都可以投射事件,但在通知的情况下,table 根据数据库触发器进行更新,因此没有相关代码。
我最近 运行 Building Real-Time Laravel Apps with Pusher workshop at Laracon EU. The workshop exercises (linked to above and with a section on Notifications) 将带您了解如何通过桥接库或内置的 Pusher Event Broadcaster(在 Laravel 5.1 及更高版本中)集成 Pusher .
它不包括数据库交互,但触发通知的正常策略的快速总结是:
- 与数据库交互
- 确保交互成功
- 通过 Pusher 触发事件
- 在客户端接收事件
- 显示通知
假设当你说数据库触发器时,你的意思是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
class 表示您的应用程序中具有此触发器以创建通知的所有其他模型。但是,如果您的触发器是一个实际的数据库触发器,这将不起作用,我建议您转到 eloquent 创建触发器的方式。
我决定在我的应用程序中实现实时通知。
通知需要发生在某些事件上,其中大部分事件需要在数据库更新 table 时触发。
为了让它实时发生,我目前正在使用带有推送器的免费帐户,如果应用程序扩展,我愿意升级。
但是我很迷茫如何让 Laravel 5 事件触发 table 的更新。
目前我在数据库中有触发器,当对某些 table 进行更新时,它会将记录添加到 notifications
table。理想情况下,每当在此处添加记录时,我都会触发 Laravel 5 事件,这又会使用推送器即时发送通知。
谁能给我指导或好的教程?
我基本上想弄清楚在何处最好地测试是否已成功对数据库进行更新。 Laravel 每次调用 ->save() 方法时都可以投射事件,但在通知的情况下,table 根据数据库触发器进行更新,因此没有相关代码。
我最近 运行 Building Real-Time Laravel Apps with Pusher workshop at Laracon EU. The workshop exercises (linked to above and with a section on Notifications) 将带您了解如何通过桥接库或内置的 Pusher Event Broadcaster(在 Laravel 5.1 及更高版本中)集成 Pusher .
它不包括数据库交互,但触发通知的正常策略的快速总结是:
- 与数据库交互
- 确保交互成功
- 通过 Pusher 触发事件
- 在客户端接收事件
- 显示通知
假设当你说数据库触发器时,你的意思是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
class 表示您的应用程序中具有此触发器以创建通知的所有其他模型。但是,如果您的触发器是一个实际的数据库触发器,这将不起作用,我建议您转到 eloquent 创建触发器的方式。