首页 > 语言 > PHP > 正文

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

2024-05-05 00:04:05
字体:
来源:转载
供稿:网友

本文实例讲述了Laravel框架实现利用中间件进行操作日志记录功能。分享给大家供大家参考,具体如下:

利用中间件进行操作日志记录过程:

1、创建中间件

php artisan make:middleware AdminOperationLog

2、生成了文件./app/Http/Middleware/AdminOperationLog.php

代码如下:

<?phpnamespace App/Http/Middleware;use Closure;use Illuminate/Http/Request;use Illuminate/Support/Facades/Auth;use App/Http/Models/OperationLog;class AdminOperationLog{  /**   * Handle an incoming request.   *   * @param /Illuminate/Http/Request $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' => [      ...      /App/Http/Middleware/AdminOperationLog::class,      ...    ],    'api' => [      'throttle:60,1',      'bindings',    ],  ];

此时进行操作时就会记录操作日志.希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。


注:相关教程知识阅读请移步到PHP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选