首頁  >  文章  >  php框架  >  laravel的中間件有什麼用

laravel的中間件有什麼用

WBOY
WBOY原創
2022-04-07 16:54:002937瀏覽

在laravel中,中間件的作用是過濾HTTP請求,根據不同的請求來執行不同的邏輯操作;中間件可以進行請求資料的攔截處理和資料檢驗,並且進行邏輯處理後判斷是否允許進入下一個中間件。

laravel的中間件有什麼用

本文操作環境:Windows10系統、Laravel6版、Dell G3電腦。

laravel的中間件有什麼用

中間件顧名思義是指在請求和回應中間,進行請求資料的攔截處理,資料校驗,並且進行邏輯處理後判斷是否允許進入下一個中間件;中間件分為前綴中間件,後置中間件;可用於權限認證、日誌記錄等。

簡單來說中間件在 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影片教學

以上是laravel的中間件有什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn