Yii2-使用afterLogin和beforLogin自动更新
2018-08-09 本文已影响0人
duandaoke
先明确两点
- 如果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
}
],
...
]