如何捕获Laravel中的所有请求URL

时间:2017-07-30 12:23:46

标签: php laravel laravel-5.4

当我打电话给我的服务器时,我希望将url和参数记录到日志或控制台。

我可以通过将以下代码放在我的Routes \ api.php中来捕获所有数据库请求。是否可以对HTTP请求执行相同的操作?

//Capture sql statements
\Event::listen('Illuminate\Database\Events\QueryExecuted', function ($query) {
    error_log($query->sql);
});

1 个答案:

答案 0 :(得分:3)

你可以在中间件中实现它

创建新的中间件

应用\ HTTP \中间件\ LogRoutes.php

namespace App\Http\Middleware;

use Closure;

class LogRoutes
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        dd($request->getRequestUri());
        return $next($request);
    }
}

然后添加 app \ Kernel.php

protected $middlewareGroups = [
    'web' => [
        // first in this array!
        App\Http\Middleware\LogRoutes::class,
        ...
    ]
]