Cet article vous apporte des connaissances pertinentes sur laravel, qui présente principalement des problèmes liés à l'utilisation d'un middleware pour enregistrer les journaux de demandes des utilisateurs, notamment la création d'un middleware, l'enregistrement d'un middleware, l'enregistrement de l'accès des utilisateurs, etc., examinons-le ensemble, j'espère cela sera utile à tout le monde.
【Recommandation associée : tutoriel vidéo laravel】
php artisan make:middleware 中间件名称(TraceRecordMiddleware)
$app->middleware([ App\Http\Middleware\TraceRecordMiddleware::class ]);
<?php namespace App\Http\Middleware; use Illuminate\Http\Request; /** * Class TraceRecordMiddleware * @package App\Http\Middleware */ class TraceRecordMiddleware { public function handle(Request $request, \Closure $next) { $response = $next($request); return $response; } }
<?php namespace App\Http\Middleware; use App\Model\SystemTraceRecord; use Illuminate\Http\Request; /** * Class TraceRecordMiddleware * @package App\Http\Middleware */ class TraceRecordMiddleware { public function handle(Request $request, \Closure $next) { //插入数据库日志表 SystemTraceRecord::create([ 'method' => $request->getMethod(), 'secure' => $request->getScheme(), 'uri' => $request->getRequestUri(), 'port' => $request->getPort() ]); return $next($request); } }
<?php namespace App\Http\Middleware; use App\Model\SystemTraceRecord; use Illuminate\Http\Request; /** * Class TraceRecordMiddleware * @package App\Http\Middleware */ class TraceRecordMiddleware { public function handle(Request $request, \Closure $next) { $response = $next($request); //响应后插入数据 SystemTraceRecord::create([ 'data' => json_encode($request->all(), JSON_UNESCAPED_UNICODE), 'response' => $response->getContent() ?: '', 'status' => $response->getStatusCode() ]); return $response; } }
<?php namespace App\Http\Middleware; use App\Model\SystemTraceRecord; use Illuminate\Http\Request; /** * Class TraceRecordMiddleware * @package App\Http\Middleware */ class TraceRecordMiddleware { public function handle(Request $request, \Closure $next) { $response = $next($request); $session = app('session'); SystemTraceRecord::create([ 'user_id' => $session->get('user_info.id', '未知'), 'username' => $session->get('user_info.username', '未知'), 'method' => $request->getMethod(), 'secure' => $request->getScheme(), 'uri' => $request->getRequestUri(), 'response' => $response->getContent() ?: '', 'status' => $response->getStatusCode() ]); return $response; } }
[Recommandations associées : tutoriel vidéo laravel]
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!