Skip to content
Advertisement

watch database and wait for changes in laravel

i have a messaging system app and every message has some status in it with 3 types of done , in progress,not started so when i send a message to user B its not started for example so when user B receive the message he changes the status to in progress here i want to send a notification to the sender and the admin that the status has been changed how can i monitor database for changes and when it changes it generates some specific notification and send it . here is the migration of message table

 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();
    });
}

Advertisement

Answer

You can initiate a Message model class to represent the records in your messages table and then listen for the updating or updated event on that model, which fires everytime a record has been updated or is currently updating. There you can check if the updated property is the needed one (in your case – status) and execute the code you desire. I suggest you check the documentation on how to work with eloquent models (if you haven’t yet) and look up the provided events. That should do the work. Here is the documentation

User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement