Laravel5.1中间件的使用

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

Paste_Image.png

访问 http://l51t.cn/18p?age=18 正常访问

Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,860评论 18 139
  • 0.1配置1.模板继承2.控制器3.git4.支付宝支付的流程5.路由6.中间件7.请求8.laravel 学习笔...
    云龙789阅读 828评论 0 5
  • Refer to: www.threemeal.com/blog/12/ 中间件 中间件是一个钩子框架,它们可以介...
    兰山小亭阅读 16,542评论 9 165
  • 中间件(Middleware)作为Http请求(Request)和Http响应(Response)之间的中间人,本...
    JunChow520阅读 2,659评论 0 1
  • 不知道该怎么写。 明天你走,去那个我完全陌生的城市生活。 一觉过后,我们的距离,就会变的好远好远。 日子还是得一天...
    最爱不过与你阅读 381评论 0 0