смотреть базу данных и ждать изменений в laravel - PullRequest
0 голосов
/ 23 октября 2018

У меня есть приложение системы обмена сообщениями, и каждое сообщение имеет некоторый статус в нем с 3 типами выполнено, выполняется, не запускается, поэтому, когда я отправляю сообщение пользователю B, оно не запускается, например, поэтому, когда пользователь B получает сообщение, онизменяет статус на выполняемый здесь. Я хочу отправить уведомление отправителю и администратору о том, что статус был изменен. Как я могу отслеживать изменения в базе данных, и при ее изменении она генерирует какое-то конкретное уведомление и отправляет его.вот миграция таблицы сообщений

 public function up()
{
    Schema::create('messages', function (Blueprint $table) {
        $table->increments('id');
        $table->string('title')->nullable();
        $table->string('body');
        $table->integer('status');
        $table->integer('sender_id');
        $table->integer('receiver_id');
        $table->timestamps();
    });
}

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Пожалуйста, отметьте https://laravel.com/docs/5.7/eloquent#observers Есть несколько событий, которые вам нужны (Update, Updated, Saved)

0 голосов
/ 23 октября 2018

Вы можете инициировать класс модели Message для представления записей в вашей таблице messages, а затем прослушивать событие updating или updated для этой модели, которое срабатывает каждый раз, когда запись была обновлена ​​или в настоящее время выполняется.обновление.Там вы можете проверить, является ли обновленное свойство нужным (в вашем случае - status) и выполнить нужный код.Я предлагаю вам проверить документацию о том, как работать с красноречивыми моделями (если вы еще этого не сделали), и посмотреть предоставленные события.Это должно сделать работу.Вот документация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...