本篇文章給大家帶來了關于laravel的相關知識,其中主要介紹了關于中間件的相關問題,包括了什么是中間件、自定義中間件等等,中間件為過濾進入應用的 http 請求提供了一套便利的機制,下面一起來看一下,希望對大家有幫助。
【相關推薦:laravel】
什么是中間件
????中間件為過濾進入應用的 HTTP 請求提供了一套便利的機制。例如,laravel 內置了一個中 間件來驗證用戶是否經過認證(如登錄),如果用戶沒有經過認證,則中間件會將用戶重定 向到登錄頁面;而如果用戶已經經過認證,則中間件會允許請求繼續往前進入下一步操作。 除了認證功能,中間件還可以被用來處理許多其他任務。比如,CORS 中間件可以為離開站 點的相應添加合適的頭(跨域);日志中間件可以記錄所有進入站點的請求,從而方便我們 構建系統日志系統。
????lavarel 自帶了一些中間件,包括認證、csrf 保護中間件等。所有的中間件都位于 appHttpMiddleware 目錄下。
一、自定義中間件
步驟:
- 使用 artisan 命令創建中間件php artisan make:middleware 中間件名
- 在創建的中間件中編寫邏輯
- 在 appHttp 文件夾中的配置文件 Kernel.php 中注冊中間件
- 將中間件分配給路由或控制器
二、舉個例子
比如游樂園某些項目需要12歲或者身高超過1米4可以玩。
我們創建一個檢驗年齡的中間件
php artisan make:middleware CheckAge
Closure 是一個閉包函數 $request用來接收應用的請求數組 $next 將請求傳遞給應用程序 $next($request) 將請求傳遞給應用程序
public function handle(Request $request, Closure $next) { if($request->age < 12){ dd("你的年齡不符合要求") ; } return $next($request); }
注冊中間件
打開 appHttp 文件夾中的配置文件 Kernel.php
$middleware 配置全局中間件,所有http請求都需要經過我們定義好的中間件。
$middlewareGroups中間件組
$routeMiddleware 定義別名
'age' => AppHttpMiddlewareCheckAge::class
打開web.php創建一個路由
//中間件Route::get('middleware/{age}',function () { return "你的年齡符合要求";})->middleware('age');
測試
http://www.la.com/middleware/1
http://www.la.com/middleware/12
【相關推薦:laravel】