Уведомления Laravel 5, запускаемые при добавлении в базу данных с помощью толкателя

Я решил внедрить уведомления в реальном времени в мое приложение.

Уведомления должны появляться при определенных событиях, большинство из которых должно запускаться при обновлении таблиц в базе данных.

Чтобы это происходило в режиме реального времени, я в настоящее время использую бесплатную учетную запись с pusher, и я готов обновиться, если и когда приложение масштабируется.

Однако я довольно растерялся относительно того, как запускать события Laravel 5 при обновлении таблицы.

В настоящее время у меня есть триггеры в базе данных, которые добавляют записи в notifications таблица, когда когда-либо обновления сделаны для определенных таблиц. В идеале, если бы запись была добавлена ​​сюда, у меня возникнет событие Laravel 5, а это, в свою очередь, будет использовать толкатель для мгновенной отправки уведомления.

Кто-нибудь может предложить мне направление или хороший учебник?


По сути, мне нужна ясность в отношении того, где лучше всего проверить, чтобы обновления были успешно внесены в базу данных. События Laravel могут быть вызваны каждый раз, когда вызывается метод -> save (), но в случае уведомлений эта таблица обновляется на основе триггеров базы данных, поэтому никакой код не релевантен.

0

Решение

Предполагая, что когда вы говорите триггеры базы данных, вы имеете в виду сохранение событий 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 Класс представляет собой представление всех других моделей в вашем приложении, которые имеют этот триггер для создания уведомления. Однако если ваш триггер является фактическим триггером базы данных, это не сработает, и я рекомендую вам перейти к красноречивому способу создания триггера.

1

Другие решения

Я недавно побежал Создание приложений Laravel в реальном времени с мастерской Pusher на Лараконе ЕС. Учебные занятия (связанные с выше и с раздел на уведомления) проведет вас через то, как вы можете интегрировать Pusher через библиотеку мостов или встроенную в Pusher Event Broadcaster (в Laravel 5.1 и выше).

Он не охватывает взаимодействия с базой данных, но очень краткий обзор обычной стратегии запуска уведомления:

  1. Взаимодействовать с базой данных
  2. Убедитесь, что взаимодействие было успешным
  3. Запустить событие через Pusher
  4. Получить событие на клиенте
  5. Показать уведомление
0

По вопросам рекламы [email protected]