beforeLogout 是 yii\web\User 的事件,如果想触发这个事件,可以把该事件挂载到配置文件中,
因为配置是支持事件挂载的:
'components' => [
'user' => [
'identityClass' => 'backend\models\AdminUser',
'enableAutoLogin' => true,
'on beforeLogout' => function($event){ //挂载beforeLogout事件
$adminUser = $event->identity;<span style="white-space:pre"> </span> //AdminUser模型的实例
$adminUser->setScenario('beforeLogout'); //(自定义)设置验证规则指定场景
$adminUser->last_login_time = time();
$adminUser->last_login_ip = Yii::$app->request->userIP;
$adminUser->update();
}
],
]
注:因为AdminModel是AR,所以如果将
yii\web\User的事件加载到Model中是不会触发的。
yii2 常用的before和after事件: