加入收藏 | 设为首页 | 会员中心 | 我要投稿 阜新站长网 (https://www.0418zz.com.cn/)- 管理运维、AI硬件、数据集成、云备份、负载均衡!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

Laravel框架实现利用中间件进行操作日志记录功能

发布时间:2022-07-04 09:29:07 所属栏目:PHP教程 来源:互联网
导读:本文实例讲述了Laravel框架实现利用中间件进行操作日志记录功能。分享给大家供大家参考,具体如下: 利用中间件进行操作日志记录过程: 1、创建中间件 php artisan make:middleware AdminOperationLog 2、生成了文件./app/Http/Middleware/AdminOperationLog
  本文实例讲述了Laravel框架实现利用中间件进行操作日志记录功能。分享给大家供大家参考,具体如下:
 
  利用中间件进行操作日志记录过程:
 
  1、创建中间件
 
  php artisan make:middleware AdminOperationLog
 
  2、生成了文件./app/Http/Middleware/AdminOperationLog.php
 
  代码如下:
 
  <?php
  namespace AppHttpMiddleware;
  use Closure;
  use IlluminateHttpRequest;
  use IlluminateSupportFacadesAuth;
  use AppHttpModelsOperationLog;
  class AdminOperationLog
  {
    /**
     * Handle an incoming request.
     *
     * @param IlluminateHttpRequest $request
     * @param Closure $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
      $user_id = 0;
      if(Auth::check()) {
        $user_id = (int) Auth::id();
      }
      $_SERVER['admin_uid'] = $user_id;
      if('GET' != $request->method()){
        $input = $request->all();
        $log = new OperationLog(); # 提前创建表、model
        $log->uid = $user_id;
        $log->path = $request->path();
        $log->method = $request->method();
        $log->ip = $request->ip();
        $log->sql = '';
        $log->input = json_encode($input, JSON_UNESCAPED_UNICODE);
        $log->save();  # 记录日志
      }
      return $next($request);
    }
  }
  3、中间件引入 ./app/Http/Kernel.php
 
  protected $middlewareGroups = [
      'web' => [
        ...
        AppHttpMiddlewareAdminOperationLog::class,
        ...
      ],
      'api' => [
        'throttle:60,1',
        'bindings',
      ],
    ];
  此时进行操作时就会记录操作日志。

(编辑:阜新站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读