laravel5.4中间件参数

发现问题

刚开始看官方文档不清楚中间件参数怎么传递

解决

中间件还可以接收额外参数,我们还是以TestMiddleware为例,现在要求年龄在18岁以上的男性才能访问指定页面,handle方法定义如下:

public function handle($request, \Closure $next, $gender)
{
    if($request->input('age')>=18 && $gender==$request->input('gender')){
        return $next($request);
    }else{
        return redirect()->route('refuse');
    }
}
对应的路由配置如下:

Route::group(['middleware'=>'test:male'],function(){
   Route::get('/write/test',function(){
       return "成年了!!";
    });

});

Route::get('/age/refuse',function(){
    return "18岁以上男子才能访问!";
})->name('refuse');

结果

访问

http://localhost/laravel/public/write/test

结果

跳转到 http://localhost/laravel/public/age/refuse
自然就访问到路由中的function中

18岁以上男子才能访问!

访问

http://localhost/laravel/public/write/test?age=20&gender=male

结果

成年了!!

猜你喜欢

转载自blog.csdn.net/qq_33862778/article/details/81045133
今日推荐