ミドルウェアを使用してユーザーリクエストログを記録するlaravelの詳細な例
この記事では、laravel に関する関連知識を提供します。主に、ミドルウェアの作成、ミドルウェアの登録、ユーザー アクセスやその他のコンテンツの記録など、ミドルウェアを使用してユーザー リクエスト ログを記録することに関する関連問題を紹介します。以下をご覧ください。皆様のお役に立てれば幸いです。
laravel ビデオ チュートリアル]
1. ミドルウェアの作成
- コマンドを使用して作成することも、直接作成することもできます
php artisan make:middleware 中间件名称(TraceRecordMiddleware)
2. 登録ミドルウェア
- 理由は異なります。 laravel のバージョンが登録されている 中間価格の設定方法が異なる ここではバージョン 5.6 を例にします
- 次のコードをプロジェクト
- bootstarp/app.php に直接追加します #
$app->middleware([ App\Http\Middleware\TraceRecordMiddleware::class ]);
3. ユーザー アクセス ログを記録する
#実際、中間価格はリクエスト インターセプタとして理解できます- #したがって、ユーザーのリクエスト前のデータとユーザーのリクエスト後の応答データをインターセプトします。
- 以下に基づく中間価格テンプレート
- #
<?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; } }
ログイン後にコピー4. ユーザーの応答の前にデータを記録します
#<?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);
}
}
ログイン後にコピー
5. ユーザーの応答後にデータを記録します-
ユーザーのリクエスト後に、システムによってどのようなデータが返されたのかを知りたい場合があります。<?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;
}
}
ログイン後にコピー
6. ユーザーの詳細ログを記録します-
どのユーザーがアクセスしたかを知る必要がある場合があります セッション データを直接取得することもできます
<?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;
}
}
ログイン後にコピー
<?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; } }
以上がミドルウェアを使用してユーザーリクエストログを記録するlaravelの詳細な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Laravel - アーティザン コマンド - Laravel 5.7 には、新しいコマンドを処理およびテストするための新しい方法が付属しています。これには職人コマンドをテストする新しい機能が含まれており、そのデモについては以下で説明します。

Laravel - ページネーションのカスタマイズ - Laravel には、ユーザーまたは開発者がページネーション機能を組み込むのに役立つページネーションの機能が含まれています。 Laravel ページネーターは、クエリ ビルダーおよび Eloquent ORM と統合されています。自動ページネーションメソッド

Laravelの電子メールの送信が失敗したときに戻りコードを取得する方法。 Laravelを使用してアプリケーションを開発する場合、検証コードを送信する必要がある状況に遭遇することがよくあります。そして実際には...

LaravelスケジュールタスクRAN RANSPONSIVEトラブルシューティングRALAVELのスケジュールタスクスケジューリングを使用すると、多くの開発者がこの問題に遭遇します。スケジュール:実行...

Laravelの電子メールの検証コードの送信の障害を処理する方法は、Laravelを使用することです...

DCATを使用するときにDCATADMIN(Laravel-Admin)にデータを追加するためにカスタムクリックのテーブル関数を実装する方法...

Laravel - ダンプサーバー - Laravel ダンプサーバーには、Laravel 5.7 のバージョンが付属しています。以前のバージョンにはダンプ サーバーが含まれていません。ダンプサーバーはlaravel/laravelコンポーザーファイルの開発依存関係になります。

Laravel FrameworkでRedis接続の共有の影響とLaravelフレームワークとRedisを使用する際のメソッドを選択すると、開発者は問題に遭遇する可能性があります。
