Yii2关联事件求一个简单的demo或者指导

发布于 2022-09-05 01:16:38 字数 238 浏览 30 评论 0

应用场景:用户点击帖子收藏

基本流程:
点击收藏后,数据表中添加一个当前帖子的收藏记录

事件触发:
1、帖子的收藏数+1
2、用户的积分+1
3、发送给帖子作者收藏通知

关联事件:
用户积分+1后又触发用户积分添加日志事件

疑问:
1、上述的描述是否正确?
2、用户积分+1后,如何再次触发积分添加日志事件?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

好倦 2022-09-12 01:16:38

图片描述

描述基本正确。参考数据库如图。
代码就不写了,大概思路是,每一个操作对应一个event,当操作发生的时候,读取function字段下的值(由json形式存储),json_decode后,遍历这个数组,这个数组的key代表一个处理方式,value表示变化量。

如触发了收藏事件,读取了“{"收藏数":"+1","积分":"+1","发送通知":"true"}”,还原回数组后,看到有收藏数,积分,发送通知三个事件。分别调用收藏数处理方法,积分变动方法,发送通知方法,并分别把值传递过去(传值时候还需要把其他必要的值一块传递过去)。收藏数处理方法看到传过来的值是+1就把收藏+1,发送通知方法收到的值是true就发通知,false就不发。

日志问题,我个人不倾向于把它当作事件来处理,直接在对应的实现方法中调用一个日志处理类/方法进行处理就行。想要精细控制,可以考虑在这个日志处理方法中具体实现。方法跟之前类似,函数原型log(type,value),如log('收藏','要记录到日志的内容')。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文