Laravel5中間件, 顧名思義, 可以理解為 中間的那個類, 那么中間是什么意思呢?
我們從輸入URL開始就對網(wǎng)站進行請求了, 這里剛進來就是 開始, 到最后 我們的目標(biāo)出現(xiàn), 就是結(jié)束, 那么 開始 與 結(jié)束中間 就是 中間件 出現(xiàn)的地方, 那么在這中間我們可以干什么呢?比如, 看看你是否登陸, 看看你是否通過是 跨站 請求, 你輸入的信息是否 符合要求等
Laravel5中中間件的應(yīng)用, 和早期的鉤子, TP5中的行為都是一個意思, 先前有寫過TP5中行為的應(yīng)用實例, 這里一個小例子說明下Laravel5中中間件的簡單用法.
一. 生成一個中間件 php artisan make:middle CheckAge?。凵梢粋€檢查請求年齡的 中間件 位置:App\Http\Middleware]
namespace App\Http\Middleware; use Closure; class CheckAge { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if ($request->input('age') >= 150) { echo "乖乖, 有這么大的歲數(shù)的嗎?再說, 我總是18歲喲"; } return $next($request); //這上面的代碼是我們自己定義的 } }
二. 中間件的調(diào)用
方法一: routes/web.php
use App\Http\Middleware\CheckAge; Route::post("news/store",'News@store')->middleware(CheckAge::class);
方法二: App\Http\Kernel.php [注冊中間件, 在使用時可以直接調(diào)用]
1> 將類 放到 $middleware數(shù)組中\(zhòng)App\Http\Middleware\CheckAge::class[全局自動調(diào)用]
2> 將類放到$middlewareGroups中的WEB中 [路由WEB中直接自動調(diào)用]
3> 放到 $routeMiddleware 中 路由調(diào)用 鍵名
'CheckAge' => \App\Http\Middleware\CheckAge::class,
調(diào)用:Route::post("news/store",'News@store')->middleware('CheckAge');