step1 创建middleware文件
php artisan make:middleware TestMiddleware
step2 编辑该中间件文件TestMiddleware.php的handle方法
public function handle($request, Closure $next)
{
//当传入的age<18的时候跳转到拦截页面,大于18时正常访问
if($request->input('age')<18) return redirect()->route('refuse');
return $next($request);
}
step3 在kernel.php的$routeMiddleware属性中加入该中间件 test
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
//加上下面这一行就可以了
'test' => \App\Http\Middleware\TestMiddleware::class,
];
step4 编写路由文件
使用到test中间件的路由写在分组里边
Route::group(['middleware'=>'test'],function (){
Route::get('18p',function (){
return '恭喜你已经成人了,可以xxoo了!!';
});
});
被中间件拦截的请求的目标路由
由于中间件内使用了route方法,所以这里起了别名
Route::get('jujue',['as'=>'refuse',function (){
return '18岁以下请离开!';
}]);
测试一下
访问l51t.cn/18p?age=17 被中间件拦截 跳转到
http://l51t.cn/jujue
访问 http://l51t.cn/18p?age=18 正常访问
Paste_Image.png
网友评论