主页 > 知识库 > Laravel框架实现利用监听器进行sql语句记录功能

Laravel框架实现利用监听器进行sql语句记录功能

热门标签:高识别电销机器人 宝安400电话办理 沈阳人工智能电销机器人公司 合肥外呼系统app 智能外呼电销系统 拉萨打电话机器人 哈尔滨400电话办理到易号网 h5 地图标注 电销机器人-快迭智能

本文实例讲述了Laravel框架实现利用监听器进行sql语句记录功能。分享给大家供大家参考,具体如下:

利用监听器进行sql语句记录

1、监听sql语句的事件类已经定义,直接创建监听器类即可:

# 监听sql
make:listener QueryListener --event=Illuminate\Database\Events\QueryExecuted

2、监听器类代码

./app/Listeners/QueryListener.php

?php
namespace App\Listeners;
use Illuminate\Database\Events\QueryExecuted;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use App\Http\Models\OperationLog;
class QueryListener
{
  /**
   * Create the event listener.
   *
   * @return void
   */
  public function __construct()
  {
    //
  }
  /**
   * Handle the event.
   *
   * @param QueryExecuted $event
   * @return void
   */
  public function handle(QueryExecuted $event)
  {
    $sql = str_replace("?", "'%s'", $event->sql);
    $log = vsprintf($sql, $event->bindings);
    # 此处$uid定义是依赖于中间件记录操作日志代码
    $uid = isset($_SERVER['admin_uid']) ? $_SERVER['admin_uid'] : 0;
    if('select' != substr($log , 0 , 6)){
      if('insert into `operationLog`' != substr($log , 0 , 26)){
        $OperationLog = new OperationLog();
        $OperationLog->uid = $uid;
        $OperationLog->sql = $log;
        $OperationLog->input = '';
        $OperationLog->save();
      }
    }
  }
}

3、引入监听器

./app/Providers/EventServiceProvider.php

protected $listen = [
    ...
    \Illuminate\Database\Events\QueryExecuted::class => [
      'App\Listeners\QueryListener'
    ],
    ...
  ];

此时进行操作时就会记录sql日志

相关文章:

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

更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

您可能感兴趣的文章:
  • Laravel SQL语句记录方式(推荐)
  • Laravel5.* 打印出执行的sql语句的方法
  • Laravel框架执行原生SQL语句及使用paginate分页的方法
  • laravel实现查询最后执行的一条sql语句的方法
  • Laravel使用原生sql语句并调用的方法
  • laravel 获取某个查询的查询SQL语句方法
  • Laravel 使用查询构造器配合原生sql语句查询的例子
  • Laravel中如何轻松容易的输出完整的SQL语句

标签:林芝 威海 成都 山东 梅州 张家口 泰州 巴中

巨人网络通讯声明:本文标题《Laravel框架实现利用监听器进行sql语句记录功能》,本文关键词  Laravel,框架,实现,利用,监听器,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《Laravel框架实现利用监听器进行sql语句记录功能》相关的同类信息!
  • 本页收集关于Laravel框架实现利用监听器进行sql语句记录功能的相关信息资讯供网民参考!
  • 推荐文章