Laravel5中間件, 顧名思義, 可以理解為 中間的那個(gè)類, 那么中間是什么意思呢?
我們從輸入U(xiǎn)RL開(kāi)始就對(duì)網(wǎng)站進(jìn)行請(qǐng)求了, 這里剛進(jìn)來(lái)就是 開(kāi)始, 到最后 我們的目標(biāo)出現(xiàn), 就是結(jié)束, 那么 開(kāi)始 與 結(jié)束中間 就是 中間件 出現(xiàn)的地方, 那么在這中間我們可以干什么呢?比如, 看看你是否登陸, 看看你是否通過(guò)是 跨站 請(qǐng)求, 你輸入的信息是否 符合要求等
Laravel5中中間件的應(yīng)用, 和早期的鉤子, TP5中的行為都是一個(gè)意思, 先前有寫(xiě)過(guò)TP5中行為的應(yīng)用實(shí)例, 這里一個(gè)小例子說(shuō)明下Laravel5中中間件的簡(jiǎn)單用法.
一. 生成一個(gè)中間件 php artisan make:middle CheckAge?。凵梢粋€(gè)檢查請(qǐng)求年齡的 中間件 位置: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ù)的嗎?再說(shuō), 我總是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 [注冊(cè)中間件, 在使用時(shí)可以直接調(diào)用]
1> 將類 放到 $middleware數(shù)組中\(zhòng)App\Http\Middleware\CheckAge::class[全局自動(dòng)調(diào)用]
2> 將類放到$middlewareGroups中的WEB中 [路由WEB中直接自動(dòng)調(diào)用]
3> 放到 $routeMiddleware 中 路由調(diào)用 鍵名
'CheckAge' => \App\Http\Middleware\CheckAge::class,
調(diào)用:Route::post("news/store",'News@store')->middleware('CheckAge');