laravel では、ミドルウェアの役割は HTTP リクエストをフィルタリングし、さまざまなリクエストに応じてさまざまな論理操作を実行することです。ミドルウェアはリクエスト データをインターセプトして処理し、データを検査し、論理処理を実行して、HTTP リクエストへのエントリを許可するかどうかを判断できます。次のミドルウェア。
#この記事の動作環境: Windows 10 システム、Laravel バージョン 6、Dell G3 コンピューター。
ミドルウェアはその名の通り、リクエストデータをインターセプトして処理し、データを検証し、リクエストとレスポンスの間の論理的な処理を行った上でエントリを許可するかどうかを決定します。ミドルウェア; ミドルウェアはプレフィックスミドルウェアとポストミドルウェアに分かれており、権限認証やロギングなどに利用できます。
簡単に言えば、laravelにおけるミドルウェアの役割は、HTTPリクエストをフィルタリングし、さまざまなリクエストに基づいてさまざまな論理操作を実行することです。
ミドルウェアを通じて次の機能を実現できます:
特定のルートを指定します
HTTP の設定応答ヘッダー
リクエストの記録
リクエスト パラメーターのフィルタリング
サイト メンテナンス モードを有効にするかどうかの決定
応答の前後に必要な操作をいくつか実行します
カスタム ミドルウェア
コマンド ライン次の簡単なコマンドを実行することで、新しいミドルウェアを簡単に作成できます。
php artisan make:middleware <MiddlewareName> //MiddlewareName 就是你要创建的中间件的名字
上記のコマンドを実行すると、Laravel は、handle メソッドのみを含むミドルウェアを app/Http/Middleware ディレクトリに自動的に作成します。
<?php namespace App\Http\Middleware; use Closure; class RedirectIfSuperAdmin { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { return $next($request); } }
ミドルウェアが呼び出されると、handle メソッドが実行されます。ここで注意する必要があるのは、handle メソッドにはデフォルトで $request と $next の 2 つのパラメータがあることです。 $request はアプリケーションのリクエスト グループを受け入れるために使用され、$next はリクエストをアプリケーションに渡します。これら 2 つのパラメータはハンドルに不可欠です。ミドルウェアには、プレミドルウェアとポストミドルウェアも含まれます。
「プレミドルウェア」は、その名前が示すように、リクエストをアプリケーションに転送する前にいくつかのロジックを処理します。一方、After ミドルウェアは、アプリケーションがリクエストを処理し、レスポンスを生成した後に実行されます。
プレミドルウェア:
<?php namespace App\Http\Middleware; use Closure; class RedirectIfSuperAdmin { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { //你的逻辑就在这里 return $next($request); } }
ポストミドルウェア:
<?php namespace App\Http\Middleware; use Closure; class RedirectIfSuperAdmin { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $response = $next($request); //你的逻辑就在这里 例如 重定向到 `/` return $response; } }
[関連する推奨事項: laravel ビデオチュートリアル ]
以上がlaravelミドルウェアの用途は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。