Laravel 8 定義中間件

2021-07-16 17:57 更新

您可以使用 make:middleware 來創(chuàng)建一個中間件:

php artisan make:middleware CheckAge

該命令會在 app/Http/Middleware 目錄下放置新的 CheckAge 類。在這個中間件中,我們僅允許 age 參數(shù)大于 200 的請求對路由進行訪問,否則將重定向到 home 頁面:

<?php

namespace App\Http\Middleware;

use Closure;

class CheckAge
{
    /**
     * 處理傳入的請求
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if ($request->age <= 200) {
            return redirect('home');
        }

        return $next($request);
    }
}

正如您所見,如果給定的 age 參數(shù)小于或等于 200, 這個中間件將返回一個 HTTP 重定向給客戶端;否則這個請求將會通過,進一步傳遞到應(yīng)用層中。要讓請求繼續(xù)傳到到應(yīng)用層中 (即允許 「通過」中間件驗證), 只需要將 $request 作為參數(shù)來調(diào)用函數(shù) $next 即可。

最好將中間件想象成一系列層次,HTTP 請求必須通過它們才能進入你的應(yīng)用層。每一層都會檢查請求(是否符合中間件要求),而后決定通過或拒絕訪問應(yīng)用。

技巧:所有的中間件都是通過 服務(wù)容器 解析的,因此,你可以在你的中間件構(gòu)造函數(shù)中鍵入你需要的任何依賴。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號