婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 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語句記錄功能的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 临桂县| 桦甸市| 铜陵市| 大荔县| 淮安市| 南康市| 甘洛县| 集安市| 西和县| 永春县| 呼和浩特市| 县级市| 炎陵县| 胶南市| 瓮安县| 勃利县| 汝南县| 西乌| 马尔康县| 新和县| 岳普湖县| 大名县| 沙河市| 家居| 汶川县| 金堂县| 论坛| 荃湾区| 谢通门县| 隆昌县| 黄冈市| 祁东县| 安远县| 屏边| 松溪县| 新建县| 太白县| 鸡东县| 崇左市| 常宁市| 肥乡县|