主頁(yè) > 知識(shí)庫(kù) > Laravel框架實(shí)現(xiàn)利用監(jiān)聽器進(jìn)行sql語(yǔ)句記錄功能

Laravel框架實(shí)現(xiàn)利用監(jiān)聽器進(jìn)行sql語(yǔ)句記錄功能

熱門標(biāo)簽:高識(shí)別電銷機(jī)器人 寶安400電話辦理 沈陽(yáng)人工智能電銷機(jī)器人公司 合肥外呼系統(tǒng)app 智能外呼電銷系統(tǒng) 拉薩打電話機(jī)器人 哈爾濱400電話辦理到易號(hào)網(wǎng) h5 地圖標(biāo)注 電銷機(jī)器人-快迭智能

本文實(shí)例講述了Laravel框架實(shí)現(xiàn)利用監(jiān)聽器進(jìn)行sql語(yǔ)句記錄功能。分享給大家供大家參考,具體如下:

利用監(jiān)聽器進(jìn)行sql語(yǔ)句記錄

1、監(jiān)聽sql語(yǔ)句的事件類已經(jīng)定義,直接創(chuàng)建監(jiān)聽器類即可:

# 監(jiān)聽sql
make:listener QueryListener --event=Illuminate\Database\Events\QueryExecuted

2、監(jiān)聽器類代碼

./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、引入監(jiān)聽器

./app/Providers/EventServiceProvider.php

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

此時(shí)進(jìn)行操作時(shí)就會(huì)記錄sql日志

相關(guān)文章:

Laravel框架實(shí)現(xiàn)利用中間件進(jìn)行操作日志記錄功能

更多關(guān)于Laravel相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Laravel框架入門與進(jìn)階教程》、《php優(yōu)秀開發(fā)框架總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見數(shù)據(jù)庫(kù)操作技巧匯總》

希望本文所述對(duì)大家基于Laravel框架的PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • Laravel SQL語(yǔ)句記錄方式(推薦)
  • Laravel5.* 打印出執(zhí)行的sql語(yǔ)句的方法
  • Laravel框架執(zhí)行原生SQL語(yǔ)句及使用paginate分頁(yè)的方法
  • laravel實(shí)現(xiàn)查詢最后執(zhí)行的一條sql語(yǔ)句的方法
  • Laravel使用原生sql語(yǔ)句并調(diào)用的方法
  • laravel 獲取某個(gè)查詢的查詢SQL語(yǔ)句方法
  • Laravel 使用查詢構(gòu)造器配合原生sql語(yǔ)句查詢的例子
  • Laravel中如何輕松容易的輸出完整的SQL語(yǔ)句

標(biāo)簽:林芝 威海 成都 山東 梅州 張家口 泰州 巴中

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Laravel框架實(shí)現(xiàn)利用監(jiān)聽器進(jìn)行sql語(yǔ)句記錄功能》,本文關(guān)鍵詞  Laravel,框架,實(shí)現(xiàn),利用,監(jiān)聽器,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Laravel框架實(shí)現(xiàn)利用監(jiān)聽器進(jìn)行sql語(yǔ)句記錄功能》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Laravel框架實(shí)現(xiàn)利用監(jiān)聽器進(jìn)行sql語(yǔ)句記錄功能的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章