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

标签 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);
});

最佳答案

你可以在中间件中实现它

创建新的中间件

App\Http\Middleware\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,
        ...
    ]
]

关于php - 如何捕获 Laravel 中的所有请求 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45399789/

相关文章:

php - 使用 PDO/PHP 获取数据并循环

javascript - 在地址栏中输入 URL 进行重定向

ajax - Laravel Ajax 登录,成功后重定向到上一个网址

php - CodeIgniter 关闭自动路由?

php - 为什么整数 0 等于 PHP 中的字符串?

laravel - 防止已经登录的用户在不同的机器上登录

Laravel 5.4 和 Vue 2.0.1 无法读取未定义的属性 'get'

laravel - 在 Laravel 数组名称中验证

php - Laravel 5.4重定向不起作用

php - 如果在 mysql 表中找不到项目,如何重定向到另一个页面?