观察数据库并等待laravel中的更改

时间:2018-10-23 12:02:39

标签: php mysql database laravel

我有一个消息传递系统应用程序,每条消息都具有某种状态,其中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 :(得分:1)

您可以启动Message模型类来表示messages表中的记录,然后侦听该模型上的updatingupdated事件,该事件每次都会触发记录已更新或当前正在更新。您可以在此处检查是否需要更新的属性(在您的情况下为status)并执行所需的代码。我建议您查看有关如何使用雄辩模型的文档(如果尚未使用),并查找提供的事件。那应该做的工作。 这是documentation

答案 1 :(得分:1)

请检查https://laravel.com/docs/5.7/eloquent#observers 您需要一些事件(UpdateUpdatedSaved