浅谈Laravel中的三种中间件的作用
Laravel  /  管理员 发布于 8年前   210
在之前一直简单的认为中间件就是往middleware里添加中间件即可。现在才知道中间件有三种类型,分别为:$middleware $middlewareGroup $routeMiddleware 通过查阅资料,终于明白了这三种类型的作用和不同。 第一种,全局中间件/$middleware: 我们的每一次请求,这里面的每个中间件都会执行。 第二种,路由中间件/$routeMiddleware: 定义在该属性内的中间件,只能在定义路由的时候引用。 假设这是我们定义的路由中间件: 如果我们要使用\Illuminate\Auth\Middleware\Authenticate::class这个中间件就应该这样来写: 定义路由时候调用middleware方法,参数值是auth, 这样访问这个路由的时候,就会执行该中间件。 第三种,中间件组/$middlewareGroups: 看上边的路由中间件,我们可以感觉到这样添加路由中间件是很麻烦的事,如果我们要执行100个中间件,那就要在定义路由时候添加100个。但有了中间件组就不用这么麻烦了!我们来看下中间件组是怎么定义的。 上面的例子就是定义中间件组的格式,比如 web这个键值,它对应为一个数组,该数组有多个中间件组成。 需要声明路由的时候,如下调用就可以了。 **总结: $middleware/全局中间件,要对所有的请求要做一些处理的时候,就适合定义在该属性内。(比如统计请求次数这些) $middlewareGroups/中间件组,比如我们项目有api请求和web的请求的时候,就要把两种类型的请求中间件分离开来,这时候就需要我们中间件组啦。 $routeMiddleware/路由中间件,有些个别的请求,我们需要执行特别的中间件时,就适合定义在这属性里面。** 以上这篇浅谈Laravel中的三种中间件的作用就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。protected $routeMiddleware = [ ... 'auth' => \Illuminate\Auth\Middleware\Authenticate::class,];
Route::get('hello/laravel-china','XXController@index')->middleware('auth');
protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\EncryptCookies::class, ... ], 'api' => [ ... ],];
Route::group(['middleware' => 'web'],function($route){ $route->get('hello/world',function(){}); $route->get('hello/php',function(){}); // 这样在访问这个这些路由的时候,就会执行中间件组 web 所对应的中间件!});
您可能感兴趣的文章:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号