分析DuxCms之AdminUserModel
1 /** 2 * 获取信息 3 * @param array $where 条件 4 * @return array 信息 5 */ 6 public function getWhereInfo($where) 7 { 8 return $this->table("__ADMIN_USER__ as A") //table方法指定操作的数据表,__ADMIN_USER__简化数据表名,后面的as表示设置admin_user别名为A 9 ->join('__ADMIN_GROUP__ as B ON A.group_id = B.group_id')//用于根据两个或多个表中的列之间的关系,从这些表中查询数据 10 ->field('A.*,B.status as group_status,B.name as group_name,B.base_purview,B.menu_purview')//标识要返回或者操作的字段,可以用于查询和写入操作/ 11 ->where($where) 12 ->find(); 13 }
1 /** 2 * 登录用户 3 * @param int $userId ID 4 * @return bool 登录状态 5 */ 6 public function setLogin($userId) 7 { 8 // 更新登录信息 9 $data = array( 10 'user_id' => $userId, 11 'last_login_time' => NOW_TIME, 12 'last_login_ip' => get_client_ip(),//调用thinkphp内置函数获取IP地址 13 ); 14 $this->save($data);//将用户的登陆信息记录下来以备安全监测 15 //写入系统记录 16 api('Admin','AdminLog','addLog','登录系统'); 17 //设置cookie 18 $auth = array( 19 'user_id' => $userId, 20 ); 21 session('admin_user', $auth); 22 session('admin_user_sign', data_auth_sign($auth)); 23 return true; 24 }
这里将用户的IP地址和登陆时间记录下来了更安全。