From 95c6834d15710afdf235262e4582630d0cee59b0 Mon Sep 17 00:00:00 2001 From: lepig <lepig@qq.com> Date: Tue, 5 Mar 2019 16:42:35 +0800 Subject: [PATCH] 用户退出登录后重置logined属性登录状态 如果不手动设置`$this->logined=false` 那么在`application/admin/model/AdminLog::record()`方法里出现问题。 具体问题就是`$admin_id = $auth->isLogin() ? $auth->id : 0;` 这样代码得到的$admin_id为null,而不是0. 因为执行到$auth->isLogin()后的得到的结果为`true`,那么这个时候系统已经清除了相关session信息,所以$auth->id返回null值。 得到null值后,在进行写日志到adminlog表的时候,由于admin_id字段不允许为null就会报错。类似如下错误 ``` SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'admin_id' cannot be null ``` --- application/admin/library/Auth.php | 1 + 1 file changed, 1 insertion(+), 0 deletions(-) diff --git a/application/admin/library/Auth.php b/application/admin/library/Auth.php index 5ef8738..fe4c905 100644 --- a/application/admin/library/Auth.php +++ b/application/admin/library/Auth.php @@ -77,6 +77,7 @@ class Auth extends \fast\Auth } $admin->token = ''; $admin->save(); + $this->logined = false; //重置登录状态 Session::delete("admin"); Cookie::delete("keeplogin"); return true; -- libgit2 0.24.0