Yii2-使用afterLogin和beforLogin自动更新上次登录时间

先明确两点

  • 如果User Model是继承自 ActiveRecord
  • 而afterLogin 和 beforeLogin 是 yii\web\User 的两个事件

那么把 yii\web\User 的两个事件挂载在 User Model 肯定不会触发了。

可以通过配置来解决,配置是支持事件挂载的;
例如:


'components' =>[
    ...
    'user' => [
        'identityClass' => 'common\models\User',
        'enableAutoLogin' => true,
        'on beforeLogin' => function($event) {
            $user = $event->identity; //这里的就是User Model的实例
            $user->last_login_at = time();
            $user->save();
            ...
        },
        'on afterLogin' => function($event) {
            //the same
        }
    ],
    ...
]

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容