溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

laravel中間件怎么自定義

發(fā)布時(shí)間:2022-05-18 13:36:20 來(lái)源:億速云 閱讀:146 作者:iii 欄目:編程語(yǔ)言

今天小編給大家分享一下laravel中間件怎么自定義的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。

什么是中間件

中間件為過(guò)濾進(jìn)入應(yīng)用的 HTTP 請(qǐng)求提供了一套便利的機(jī)制。例如,Laravel 內(nèi)置了一個(gè)中 間件來(lái)驗(yàn)證用戶是否經(jīng)過(guò)認(rèn)證(如登錄),如果用戶沒(méi)有經(jīng)過(guò)認(rèn)證,則中間件會(huì)將用戶重定 向到登錄頁(yè)面;而如果用戶已經(jīng)經(jīng)過(guò)認(rèn)證,則中間件會(huì)允許請(qǐng)求繼續(xù)往前進(jìn)入下一步操作。 除了認(rèn)證功能,中間件還可以被用來(lái)處理許多其他任務(wù)。比如,CORS 中間件可以為離開(kāi)站 點(diǎn)的相應(yīng)添加合適的頭(跨域);日志中間件可以記錄所有進(jìn)入站點(diǎn)的請(qǐng)求,從而方便我們 構(gòu)建系統(tǒng)日志系統(tǒng)。

Lavarel 自帶了一些中間件,包括認(rèn)證、CSRF 保護(hù)中間件等。所有的中間件都位于 app\Http\Middleware 目錄下。

一、自定義中間件

步驟:

  1. 使用 artisan 命令創(chuàng)建中間件php artisan make:middleware 中間件名

  2. 在創(chuàng)建的中間件中編寫(xiě)邏輯

  3. 在 app\Http 文件夾中的配置文件 Kernel.php 中注冊(cè)中間件

  4. 將中間件分配給路由或控制器

二、舉個(gè)例子

比如游樂(lè)園某些項(xiàng)目需要12歲或者身高超過(guò)1米4可以玩。

我們創(chuàng)建一個(gè)檢驗(yàn)?zāi)挲g的中間件

php artisan make:middleware CheckAge

Closure 是一個(gè)閉包函數(shù)
$request用來(lái)接收應(yīng)用的請(qǐng)求數(shù)組
$next 將請(qǐng)求傳遞給應(yīng)用程序
$next($request) 將請(qǐng)求傳遞給應(yīng)用程序

 public function handle(Request $request, Closure $next)
    {
        if($request->age < 12){
            dd("你的年齡不符合要求") ;
        }

        return $next($request);
    }

注冊(cè)中間件

打開(kāi) app\Http 文件夾中的配置文件 Kernel.php

$middleware 配置全局中間件,所有http請(qǐng)求都需要經(jīng)過(guò)我們定義好的中間件。
$middlewareGroups中間件組
$routeMiddleware 定義別名

'age' => \App\Http\Middleware\CheckAge::class

打開(kāi)web.php創(chuàng)建一個(gè)路由

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

以上就是“l(fā)aravel中間件怎么自定義”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI