我有一个消息传递系统应用程序,每条消息都具有某种状态,其中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();
});
}
答案 0 :(得分:1)
您可以启动Message
模型类来表示messages
表中的记录,然后侦听该模型上的updating
或updated
事件,该事件每次都会触发记录已更新或当前正在更新。您可以在此处检查是否需要更新的属性(在您的情况下为status
)并执行所需的代码。我建议您查看有关如何使用雄辩模型的文档(如果尚未使用),并查找提供的事件。那应该做的工作。
这是documentation
答案 1 :(得分:1)
请检查https://laravel.com/docs/5.7/eloquent#observers
您需要一些事件(Update
,Updated
,Saved
)