国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

webman-laravel-orm下想把執(zhí)行后的SQL寫入日志中

zeus

下面這段代碼是基于laravel框架的,主要監(jiān)聽SQL查詢,并記錄下整條sql日志;
在webman中應(yīng)該放到哪里呢? 請(qǐng)大佬幫忙看下哈。

DB::listen(function ($query) {
    $sql = $query->sql;
    $bindings = [];
    if ($query->bindings) {
        foreach ($query->bindings as $v) {
            if (is_numeric($v)) {
                $bindings[] = $v;
            } else {
                $bindings[] = '"' . strval($v) . '"';
            }
        }
    }
    $execute = Str::replaceArray('?', $bindings, $sql);
    logs('sql')->info('SQL ' . $execute);
});
2967 2 6
2個(gè)回答

walkor 打賞

新建 app/bootstrap/LaravelLog.php (目錄不存在請(qǐng)自行創(chuàng)建)

<?php
namespace app\bootstrap;

use Webman\Bootstrap;
use support\Db;

class LaravelLog implements Bootstrap
{
    public static function start($worker)
    {
        Db::listen(function ($query) {
            $sql = $query->sql;
            $bindings = [];
            if ($query->bindings) {
                foreach ($query->bindings as $v) {
                    if (is_numeric($v)) {
                        $bindings[] = $v;
                    } else {
                        $bindings[] = '"' . strval($v) . '"';
                    }
                }
            }
            $execute = Str::replaceArray('?', $bindings, $sql);
            logs('sql')->info('SQL ' . $execute);
        });
    }
}

在 config/bootstrap.php 里加一行配置,

return [
    // ... 省略了其他配置...

    app\bootstrap\LaravelLog::class
];

這樣進(jìn)程啟動(dòng)的時(shí)候就會(huì)自動(dòng)執(zhí)行app\bootstrap\LaravelLog的start方法

  • zeus 2022-01-28

    好的,謝謝亮哥。

  • 大好時(shí)光 2022-02-22

    想問問 laravel 的各類組件要怎么接入,比如saved、saving等,已經(jīng)引入event事件庫了

  • tanhongbin 2022-03-23

    為啥我照著寫,發(fā)現(xiàn)沒有執(zhí)行呀,也不報(bào)錯(cuò)

wadeYang

app/bootstrap/LaravelLog.php
文件內(nèi)容,應(yīng)該如下,否則會(huì)報(bào)錯(cuò)

<?php
namespace app\bootstrap;

use Webman\Bootstrap;
use support\Db;
use Illuminate\Support\Str; //新增
use support\Log;//新增

class LaravelSqlLog implements Bootstrap
{
    public static function start($worker)
    {
        Db::listen(function ($query) {
            $sql = $query->sql;
            $bindings = [];
            if ($query->bindings) {
                foreach ($query->bindings as $v) {
                    if (is_numeric($v)) {
                        $bindings[] = $v;
                    } else {
                        $bindings[] = '"' . strval($v) . '"';
                    }
                }
            }
            $execute = Str::replaceArray('?', $bindings, $sql);
            //logs('sql')->info('SQL ' . $execute);
            Log::info('SQL ' . $execute);//新增
        });
    }
}
  • 暫無評(píng)論
年代過于久遠(yuǎn),無法發(fā)表回答
??