先明确两点
* 如果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
}
],
...
]
本文介绍了如何在Yii框架中正确配置用户登录前后的事件处理程序。通过在配置文件中指定事件处理器,可以在用户登录前后执行特定操作,如更新最后登录时间。
327

被折叠的 条评论
为什么被折叠?



