• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > 实例详解Laravel使用中间件记录用户请求日志

实例详解Laravel使用中间件记录用户请求日志

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了Laravel中间件,用户请求日志等相关知识,希望对您有所帮助

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于使用中间件记录用户请求日志的相关问题,包括了创建中间件、注册中间件、记录用户访问等等内容,下面一起来看一下,希望对大家有帮助。


实例详解Laravel使用中间件记录用户请求日志


一、创建中间件

可以使用命令创建, 也可以直接创建

php artisan make:middleware 中间件名称(TraceRecordMiddleware)


二、注册中间件

因为不同版本的laravel注册中间价的方式不同, 这里以5.6版本为例

直接在项目 bootstarp/app.php 中添加以下代码即可

$app->middleware([    App\Http\Middleware\TraceRecordMiddleware::class]);


三、记录用户访问日志

其实中间价可以理解为请求拦截器

所以可以拦截用户请求前的数据, 以及用户请求后的响应数据

以下为基础的中间价模版

<?php namespace App\Http\Middleware; use Illuminate\Http\Request; /** * Class TraceRecordMiddleware * @package App\Http\Middleware */class TraceRecordMiddleware{    public function handle(Request $request, \Closure $next)    {        $response = $next($request);         return $response;    }}


四、记录用户响应前数据

你只需要记录用户访问了哪些路由, 而不关系系统返回了哪些数据的话

<?php namespace App\Http\Middleware; use App\Model\SystemTraceRecord;use Illuminate\Http\Request; /** * Class TraceRecordMiddleware * @package App\Http\Middleware */class TraceRecordMiddleware{    public function handle(Request $request, \Closure $next)    {                 //插入数据库日志表        SystemTraceRecord::create([            'method' => $request->getMethod(),            'secure' => $request->getScheme(),            'uri' => $request->getRequestUri(),            'port' => $request->getPort()        ]);         return $next($request);    }}


五、记录用户响应后数据

有时候你想要知道用户请求后, 系统返回了什么数据的话

<?php namespace App\Http\Middleware; use App\Model\SystemTraceRecord;use Illuminate\Http\Request; /** * Class TraceRecordMiddleware * @package App\Http\Middleware */class TraceRecordMiddleware{    public function handle(Request $request, \Closure $next)    {        $response = $next($request);                 //响应后插入数据        SystemTraceRecord::create([            'data' => json_encode($request->all(), JSON_UNESCAPED_UNICODE),            'response' => $response->getContent() ?: '',            'status' => $response->getStatusCode()        ]);         return $response;    }}


六、记录用户详情日志

有时候你需要知道是哪些用户访问的

也可以直接获取session数据

<?php namespace App\Http\Middleware; use App\Model\SystemTraceRecord;use Illuminate\Http\Request; /** * Class TraceRecordMiddleware * @package App\Http\Middleware */class TraceRecordMiddleware{    public function handle(Request $request, \Closure $next)    {        $response = $next($request);         $session = app('session');         SystemTraceRecord::create([            'user_id' => $session->get('user_info.id', '未知'),            'username' => $session->get('user_info.username', '未知'),            'method' => $request->getMethod(),            'secure' => $request->getScheme(),            'uri' => $request->getRequestUri(),            'response' => $response->getContent() ?: '',            'status' => $response->getStatusCode()        ]);         return $response;    }}


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 实例详解Laravel使用中间件记录用户请求日志

相关文章

  • 2022-04-29PHP怎么将错误输出到文件
  • 2022-04-29PHP中如何使用构造方法和this关键字?如何引入构造方法?
  • 2022-04-29Phpstudy:80或者3306端口占用解决方案
  • 2022-04-29Photoshop制作抽象炫光的艺术字效果
  • 2022-04-29帝国cms忘记后台登录认证码和安全问题的解决方法
  • 2022-04-29Photoshop简单制作牛奶效果艺术字
  • 2022-04-29WordPress多站点不支持timthumb.php解决方法
  • 2022-04-29Uniapp中怎么使用scrpll-view组件实现下拉刷新
  • 2022-04-29Bootstrap模态窗中如何从远程加载内容?remote方法介绍
  • 2022-04-29CDR凿刻效果的制作技巧

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • Photoshop制作精致的橙色石纹立体字
    • PHP中mysql_connect()函数不支持怎么办
    • PHP中require是什么意思
    • 织梦怎么去掉index.html
    • 论坛网站推广案例分析
    • PHP使用Apache的伪静态功能实现“网页404时跳转指定页面
    • Photoshop设计贴纸效果的创意艺术字教程
    • 11个SEO细节提升网站权威性
    • ThinkPHP5验证码图片如何生成
    • 巧用“添加至百度首页”提升排名

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有