谁一开始就是大神?

Yii2关联事件求一个简单的demo或者导[2.0]

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

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

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

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

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

事件的使用分三步:
在 init() 内绑定是一种常见的方法,好处是打开 AR 模型文件后,通过查看 init() 内绑定的事件就能快速了解事件触发后,都执行了哪些操作。还有一种绑定方式是动态绑定,即在逻辑代码内动态地完成绑定和触发操作。两种绑定方法有不同的使用场景,在 init() 内绑定适合那些通用的操作;动态绑定更加灵活,适合特定情况发生时的一些操作。
以你的应用场景为例,里面涉及两个事件:用户点击收藏按钮和积分发生变化,假设分别定义为 EVENT_AFTER_CLICKED_LIKE_BUTTONEVENT_AFTER_POINT_CHANGED,之后定义四个 handlers:
这四个 handlers 都适合放在 init() 内绑定,因为这些操作适合所有收藏帖子的行为。但是假设你想再加一个功能——如果积分 +1 后用户的积分达到 100 分,将用户所属的用户组由“普通用户”改为“高级用户”,这个操作就不能在 init() 内绑定,而应该使用动态绑定的方法,因为并不是所有点击收藏后都会触发更改用户组操作,还要判断用户的积分是否达标。
上面我假设的这种情况可以再定义一个”用户积分达到 100″ 的事件(假设为 EVENT_POINT_REACHED_100),再定义一个 upgradeUserGroup() handler, 用来升级用户组。
动态绑定很简单,记住先绑定、后触发的原则即可,代码示例:

赞(0) 打赏
未经允许不得转载:菜鸟之家 » Yii2关联事件求一个简单的demo或者导[2.0]

评论 抢沙发

登录

找回密码

注册