在laravel中,中間件的作用是過濾HTTP請求,根據不同的請求來執行不同的邏輯操作;中間件可以進行請求資料的攔截處理和資料檢驗,並且進行邏輯處理後判斷是否允許進入下一個中間件。
本文操作環境:Windows10系統、Laravel6版、Dell G3電腦。
中間件顧名思義是指在請求和回應中間,進行請求資料的攔截處理,資料校驗,並且進行邏輯處理後判斷是否允許進入下一個中間件;中間件分為前綴中間件,後置中間件;可用於權限認證、日誌記錄等。
簡單來說中間件在 laravel 中的作用就是過濾 HTTP 請求,根據不同的請求來執行不同的邏輯操作。
我們可以透過中間件實現以下功能:
#指定某些路由
設定HTTP 回應頭
記錄請求
過濾請求的參數
決定是否啟用網站維護模式
回應前後做一些必要的操作
#自訂中間件
命令列執行下面的簡單指令,就可以輕鬆建立一個新的中間件
php artisan make:middleware <MiddlewareName> //MiddlewareName 就是你要创建的中间件的名字
執行上面的指令,Laravel 會在app/Http/Middleware 目錄下自動建立一個只包含handle 方法的中間件。
<?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 。 $request 用來接受應用程式的請求群組求, $next 將請求傳遞給應用程式。這兩個參數是 handle 必不可少的!中間件也包括前置中間件和後置中間件。
「前置中間件」 顧名思義在將請求轉送到應用程式之前處理一些邏輯。另一方面,在中間件之後,在應用程式處理了請求並產生回應之後運行。
前置中間件:
<?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中文網其他相關文章!