加入收藏 | 设为首页 | 会员中心 | 我要投稿 周口站长网 (https://www.0394zz.cn/)- 数据采集、智能营销、经验、云计算、专属主机!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

laravel框架中间件有哪些?作用分别是什么?

发布时间:2022-03-21 14:29:37 所属栏目:语言 来源:互联网
导读:我们知道Laravel框架里中间件有三种,分别是$middleware $middlewareGroup $routeMiddleware,一些新手对于这三种中间的作用和使用不是很了解,对此,下面就给大家简单介绍一下laravel框架中间件。 第一种,全局中间件/$middleware: 我们的每一次请求,这里
       我们知道Laravel框架里中间件有三种,分别是$middleware $middlewareGroup $routeMiddleware,一些新手对于这三种中间的作用和使用不是很了解,对此,下面就给大家简单介绍一下laravel框架中间件。
 
       第一种,全局中间件/$middleware:
 
       我们的每一次请求,这里面的每个中间件都会执行。
 
       第二种,路由中间件/$routeMiddleware:
 
       定义在该属性内的中间件,只能在定义路由的时候引用。
 
       假设这是我们定义的路由中间件:
 
protected $routeMiddleware = [
 ...
 'auth' => IlluminateAuthMiddlewareAuthenticate::class,
];
       如果我们要使用IlluminateAuthMiddlewareAuthenticate::class这个中间件就应该这样来写:
 
Route::get('hello/laravel-china','XXController@index')->middleware('auth');
       定义路由时候调用middleware方法,参数值是auth, 这样访问这个路由的时候,就会执行该中间件。
 
       第三种,中间件组/$middlewareGroups:
 
       看上边的路由中间件,我们可以感觉到这样添加路由中间件是很麻烦的事,如果我们要执行100个中间件,那就要在定义路由时候添加100个。但有了中间件组就不用这么麻烦了!我们来看下中间件组是怎么定义的。
 
protected $middlewareGroups = [
 'web' => [
 AppHttpMiddlewareEncryptCookies::class,
 ...
 ],
 'api' => [
 ...
 ],
];
       上面的例子就是定义中间件组的格式,比如 web这个键值,它对应为一个数组,该数组有多个中间件组成。
 
       需要声明路由的时候,如下调用就可以了。
 
Route::group(['middleware' => 'web'],function($route){
 $route->get('hello/world',function(){});
 $route->get('hello/php',function(){});
 // 这样在访问这个这些路由的时候,就会执行中间件组 web 所对应的中间件!
});
       总结:
 
       $middleware/全局中间件,要对所有的请求要做一些处理的时候,就适合定义在该属性内。(比如统计请求次数这些)
 
       $middlewareGroups/中间件组,比如我们项目有api请求和web的请求的时候,就要把两种类型的请求中间件分离开来,这时候就需要我们中间件组啦。
 
       $routeMiddleware/路由中间件,有些个别的请求,我们需要执行特别的中间件时,就适合定义在这属性里面。

(编辑:周口站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读