Browse Source

sql中间件

duqinya 5 years ago
parent
commit
d26cec09d8
2 changed files with 42 additions and 0 deletions
  1. 38 0
      app/Http/Middleware/SqlMiddleware.php
  2. 4 0
      bootstrap/app.php

+ 38 - 0
app/Http/Middleware/SqlMiddleware.php

@@ -0,0 +1,38 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Closure;
+use Illuminate\Support\Facades\DB;
+
+class SqlMiddleware
+{
+    /**
+     * Handle an incoming request.
+     *
+     * @param  \Illuminate\Http\Request $request
+     * @param  \Closure $next
+     * @return mixed
+     */
+    public function handle($request, Closure $next)
+    {
+        if ($request->sql_debug==1) {
+            DB::connection()->enableQueryLog();
+        }
+
+        $response = $next($request);
+        if ($request->get('sql_debug')) {
+            $queries = DB::getQueryLog();
+
+            if (!empty($queries)) {
+                foreach ($queries as &$query) {
+                    $query['full_query'] = vsprintf(str_replace('?', '%s', $query['query']), $query['bindings']);
+                }
+            }
+
+            dd($queries);exit;
+        }
+
+        return $response;
+    }
+}

+ 4 - 0
bootstrap/app.php

@@ -64,6 +64,10 @@ $app->singleton(
 |
 |
 */
 */
 
 
+$app->middleware([
+    App\Http\Middleware\SqlMiddleware::class
+]);
+
 $app->routeMiddleware([
 $app->routeMiddleware([
     'auth' => App\Http\Middleware\Authenticate::class,
     'auth' => App\Http\Middleware\Authenticate::class,
     'chxq_jwt_auth' => App\Http\Middleware\JwtAuthMiddleware::class,
     'chxq_jwt_auth' => App\Http\Middleware\JwtAuthMiddleware::class,