侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

实现laravel 插入操作日志到数据库的方法

2022-06-17 星期五 / 0 评论 / 0 点赞 / 70 阅读 / 2330 字

1 . 创建一个中间件 执行: php artisan make:middleware OperationLog2 . 在中间件中编写一个writeLog() 或者直接写在handle里面<phpnamespace Ap

1 . 创建一个中间件

执行: php artisan make:middleware OperationLog

2 . 在中间件中编写一个writeLog() 或者直接写在handle里面

.
<?phpnamespace App/Http/Middleware;use App/User;use Closure;use Illuminate/Support/Facades/Auth;class OperationLog{  /**   * Handle an incoming request.   *   * @param /Illuminate/Http/Request $request   * @param /Closure $next   * @return mixed   */  public function handle($request, Closure $next)  {    $input = $request->all(); //操作的内容    $path = $request->path(); //操作的路由    $method = $request->method(); //操作的方法    $ip = $request->ip(); //操作的IP    $usernum = $request->usernum; //操作人(要自己获取)    self::writeLog($usernum,$input,$path,$method,$ip);    return $next($request);  }  public function writeLog($usernum,$input,$path,$method,$ip){    $user = User::where('usernum',$usernum)->first();    if($user) {      $user_id = $user->userid;    }    $log = new /App/Models/OperationLog();    $log->setAttribute('user_id', $user_id);    $log->setAttribute('path', $path);    $log->setAttribute('method', $method);    $log->setAttribute('ip', $ip);    $log->setAttribute('input', json_encode($input, JSON_UNESCAPED_UNICODE));    $log->save();  }}
.

3 .创建一个OperationLog模型(这里我放在Models文件夹下了)

执行 : php artisan make:model Models/OperationLog

.
<?phpnamespace App/Models;use Illuminate/Database/Eloquent/Model;class OperationLog extends Model{  //定义表  protected $table = "operation_log";  //定义主键  protected $primaryKey = "id";}
.

4 . 将中间件注册到Kernel.php 文件

.
/** * The application's global HTTP middleware stack. * * 这些中间件是在对应用程序的每次请求中运行的 * * @var array */protected $middleware = [    .......,    .......,    .......,    /App/Http/Middleware/OperationLog::class,  ];
.

大功告成…

以上这篇实现laravel 插入操作日志到数据库的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持..。

广告 广告

评论区