From 95c6834d15710afdf235262e4582630d0cee59b0 Mon Sep 17 00:00:00 2001 From: lepig Date: Tue, 5 Mar 2019 16:42:35 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E9=80=80=E5=87=BA=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E5=90=8E=E9=87=8D=E7=BD=AElogined=E5=B1=9E=E6=80=A7?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E7=8A=B6=E6=80=81=20=E5=A6=82=E6=9E=9C?= =?UTF-8?q?=E4=B8=8D=E6=89=8B=E5=8A=A8=E8=AE=BE=E7=BD=AE`$this->logined=3D?= =?UTF-8?q?false`=20=E9=82=A3=E4=B9=88=E5=9C=A8`application/admin/model/Ad?= =?UTF-8?q?minLog::record()`=E6=96=B9=E6=B3=95=E9=87=8C=E5=87=BA=E7=8E=B0?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 具体问题就是`$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(+) diff --git a/application/admin/library/Auth.php b/application/admin/library/Auth.php index 5ef87386..fe4c905e 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;