需要了解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;
}
}
网友评论