tp5 后台操作日志 重写success方法
- 创建数据库 system_log
数据库在下方百度网盘链接中
- 创建Model Log.php
<?php
/**
* 日志模型
*/
namespace app\Admin\model;
use think\Db;
class Logs{
/**
* 增加日志
* @param int $uid 用户表示
* @param string $username 用户名
* @param string $controller 控制器
* @param string $action 操作名
* @param string $param 请求参数
* @param string $ip IP
* @param string $message 操作提示
* @param int $role_id 角色表示
*/
public function add($uid,$username,$controller,$action,$param,$ip,$message,$role_id){
$data = array(
'uid' => $uid,//用户表示
'username' => $username,//用户名
'controller' => $controller,//控制器
'action' => $action,//操作
'param' => $param,//请求参数
'ip' => $ip,//ip
'message' => $message,//消息
'role_id' => $role_id,//角色表示
'create_time' => time(),//创建时间
);
Db::name('system_log')->insert($data);
}
}
3.在公用的控制器 Base中重写success方法
/**
* 操作成功跳转的快捷方法
* @access protected
* @param string $message 提示信息
* @param string $jumpUrl 页面跳转地址
* @param mixed $ajax 是否为Ajax方式 当数字时指定跳转时间
* @return void
*/
protected function success($msg = '', $url = null, $data = '', $wait = 3, array $header = []){
//获取请求参数
$request = \think\Request::instance();
$controller = $request->controller();
$action = $request->action();
$no_auth = 0;
//无需验证操作
if(($module = config('auth_no_action')) && is_array($module)){
if(empty($module[$controller]) == false){
$action_arr = $module[$controller];
if($action_arr == '*' || in_array($action,$action_arr)){
$no_auth = 1;
}
}
}
if($controller!='Login'){
$user = $this->user_info();
if($user== true && $no_auth == 0){
$param = array(
'uid' => $user['id'],//用户表示
'username' => $user['username'],//用户名
'controller' => $controller,//控制器名
'action' => $action,//操作名
'param' => json_encode($request->param()),//请求参数
'ip' => $request->ip(),//IP
'message' => $msg,//消息
'role_id' => $user['roles_id'],//角色表示
);
call_user_func_array(array(model('Logs'),'add'),$param);
}
parent::success($msg, $url, $data, $wait, $header);
}
}
所需要的附件
链接:https://pan.baidu.com/s/1Fa3I8lcC4iF5UX91XkZOhg
提取码:3bdp