Yii2关联事件求一个简单的demo或者指导
应用场景:用户点击帖子收藏
基本流程:
点击收藏后,数据表中添加一个当前帖子的收藏记录
事件触发:
1、帖子的收藏数+1
2、用户的积分+1
3、发送给帖子作者收藏通知
关联事件:
用户积分+1后又触发用户积分添加日志
事件
疑问:
1、上述的描述是否正确?
2、用户积分+1后,如何再次触发积分添加日志
事件?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
描述基本正确。参考数据库如图。
代码就不写了,大概思路是,每一个操作对应一个event,当操作发生的时候,读取function字段下的值(由json形式存储),json_decode后,遍历这个数组,这个数组的key代表一个处理方式,value表示变化量。
如触发了收藏事件,读取了“{"收藏数":"+1","积分":"+1","发送通知":"true"}”,还原回数组后,看到有收藏数,积分,发送通知三个事件。分别调用收藏数处理方法,积分变动方法,发送通知方法,并分别把值传递过去(传值时候还需要把其他必要的值一块传递过去)。收藏数处理方法看到传过来的值是+1就把收藏+1,发送通知方法收到的值是true就发通知,false就不发。
日志问题,我个人不倾向于把它当作事件来处理,直接在对应的实现方法中调用一个日志处理类/方法进行处理就行。想要精细控制,可以考虑在这个日志处理方法中具体实现。方法跟之前类似,函数原型log(type,value),如log('收藏','要记录到日志的内容')。