Yii2 事件使用的业务场景

需要了解Yii事件基础
http://www.yiifans.com/yii2/guide/concept-events.html

Yii 使用事件来注入定制代码到既有代码中的特定执行点。比如,当用户评论一篇文章时,可以触发一个评论对象添加(“add”)事件。

又比如,邮件程序对象成功发出消息时可触发 messageSent 事件。如想追踪成功发送的消息,可以附加相应追踪代码到 messageSent 事件。

用户登录成功后触发afterLogin事件。可以在该事件处绑定yii AfterLoginBehavior行为,更新用户信息。如:

public function afterLogin($event)
    {
        $model = $event->identity->userInfo;

        $model->login_count += 1;
        $model->prev_login_time = $model->last_login_time;
        $model->prev_login_ip = $model->last_login_ip;
        $model->last_login_time = time();
        $model->last_login_ip = Yii::$app->getRequest()->getUserIP();

        if (!Yii::$app->session->isActive) {
            Yii::$app->session->open();
        }
        $model->session_id = Yii::$app->session->id;
        Yii::$app->session->close();

        if ($model->save()) {
            return true;
        } else {
            return false;
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 12,788评论 6 13
  • 大家可以从任何一个gii生成model类开始代码上溯,会发现:yii2的model层基于ActiveRecord实...
    tmy2017阅读 1,485评论 1 6
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 16,399评论 4 61
  • 你觉得呢?有时候被下属当成一种不作为,但事实上是对下属的负责任,也是对自己的负责。 下属有一个思考的机会,自己也可...
    张磊沙阅读 155评论 0 0
  • 年少时的孤独啊 为年少所独有 年轻时的忧郁啊 都倾注了烟和酒 曾经的新鲜感啊 也执着火与枪 年少时的气焰啊 比阳光...
    此君邪阅读 158评论 0 1

友情链接更多精彩内容