中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Laravel框架中使用監聽器實現sql語句記錄功能

發布時間:2021-05-22 16:37:07 來源:億速云 閱讀:202 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關怎么在Laravel框架中使用監聽器實現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'
    ],
    ...
  ];

Laravel 是什么

Laravel 是一套簡潔、優雅的PHP Web開發框架。它可以讓你從面條一樣雜亂的代碼中解脫出來;它可以幫你構建一個完美的網絡APP,而且每行代碼都可以簡潔、富于表達力。

看完上述內容,你們對怎么在Laravel框架中使用監聽器實現sql語句記錄功能有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广南县| 玛曲县| 府谷县| 西青区| 老河口市| 华阴市| 镇康县| 当阳市| 汪清县| 当涂县| 文登市| 鸡东县| 昌宁县| 九江市| 丽江市| 杭州市| 广平县| 奉新县| 蒲城县| 阿克陶县| 广昌县| 延庆县| 盘山县| 德安县| 宜良县| 岚皋县| 和平区| 唐海县| 龙海市| 绥化市| 宜丰县| 石狮市| 上饶县| 涟水县| 徐水县| 静海县| 精河县| 衡阳县| 马尔康县| 大冶市| 鄂伦春自治旗|