laravel中間件基礎詳解

本篇文章給大家帶來了關于laravel的相關知識,其中主要介紹了關于中間件的相關問題,包括了什么是中間件、自定義中間件等等,中間件為過濾進入應用的 http 請求提供了一套便利的機制,下面一起來看一下,希望對大家有幫助。

laravel中間件基礎詳解

【相關推薦:laravel

什么是中間件

????中間件為過濾進入應用的 HTTP 請求提供了一套便利的機制。例如,laravel 內置了一個中 間件來驗證用戶是否經過認證(如登錄),如果用戶沒有經過認證,則中間件會將用戶重定 向到登錄頁面;而如果用戶已經經過認證,則中間件會允許請求繼續往前進入下一步操作。 除了認證功能,中間件還可以被用來處理許多其他任務。比如,CORS 中間件可以為離開站 點的相應添加合適的頭(跨域);日志中間件可以記錄所有進入站點的請求,從而方便我們 構建系統日志系統。

????lavarel 自帶了一些中間件,包括認證、csrf 保護中間件等。所有的中間件都位于 appHttpMiddleware 目錄下。

一、自定義中間件

步驟:

  1. 使用 artisan 命令創建中間件php artisan make:middleware 中間件名
  2. 在創建的中間件中編寫邏輯
  3. 在 appHttp 文件夾中的配置文件 Kernel.php 中注冊中間件
  4. 將中間件分配給路由或控制器

二、舉個例子

比如游樂園某些項目需要12歲或者身高超過1米4可以玩。

我們創建一個檢驗年齡的中間件

php artisan make:middleware CheckAge

laravel中間件基礎詳解

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

laravel中間件基礎詳解

打開web.php創建一個路由

//中間件Route::get('middleware/{age}',function () {     return "你的年齡符合要求";})->middleware('age');

測試

http://www.la.com/middleware/1
laravel中間件基礎詳解

http://www.la.com/middleware/12
laravel中間件基礎詳解

【相關推薦:laravel

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享