Laravel: Как вызвать событие при изменении определенного столбца в таблице пользователей?

В моей таблице пользователей у меня есть столбец с проверенным именем и типом данных boolean со значением по умолчанию «false». Однако я хочу вызвать событие, когда значение этого столбца для любого конкретного пользователя изменится на «true», поэтому я могу сделать уведомление на основе этого события?
Есть идеи, как мне этого добиться?

0

Решение

Вы можете добавить хук к событию модели и выполнить проверку. Код ниже идет в вашей модели. Вы можете или не хотите передавать объект пользователя с событием. Это может пригодиться, если вы отправляете уведомления.

public static function boot()
{
parent::boot();

static::updated(function($user) {
if ($user->verified == true) {
event(new UserVerified($user));
}
});
}
2

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

Я думаю о том, чтобы создать триггер при обновлении вашей целевой таблицы. После обновления вы можете вставить запись в другую таблицу EVENT,

Ваш код может периодически запрашивать EVENT таблица для обработки этих обновлений.

Если вы используете Oracle DB, Очереди Oracle будет очень полезно.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector