<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Database\Events\QueryExecuted;
use Illuminate\Support\Facades\DB;
class AppendSqlToResponse
{
private $sql = [];
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (!env('APP_DEBUG')) {
return $next($request);
}
// inject
DB::listen(function (QueryExecuted $query) {
if (count($this->sql) < 10) {
$sql = $query->sql;
if (!empty($query->bindings)) {
foreach ($query->bindings as $key => $binding) {
// This regex matches placeholders only, not the question marks,
// nested in quotes, while we iterate through the bindings
Laravel返回SQL语句中间件
最新推荐文章于 2023-07-01 15:27:28 发布
本文介绍如何在Laravel应用中创建一个中间件,用于记录并展示执行的SQL语句,帮助开发者调试和优化数据库查询。通过这个中间件,你可以轻松地查看请求过程中所有的数据库操作。
摘要由CSDN通过智能技术生成