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

结果

成年了!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值