laravel框架中间件有哪些?作用分别是什么?
Admin 2021-05-27 群英技术资讯 1259 次浏览
我们知道Laravel框架里中间件有三种,分别是$middleware $middlewareGroup $routeMiddleware,一些新手对于这三种中间的作用和使用不是很了解,对此,下面就给大家简单介绍一下laravel框架中间件。
第一种,全局中间件/$middleware:
我们的每一次请求,这里面的每个中间件都会执行。
第二种,路由中间件/$routeMiddleware:
定义在该属性内的中间件,只能在定义路由的时候引用。
假设这是我们定义的路由中间件:
protected $routeMiddleware = [ ... 'auth' => \Illuminate\Auth\Middleware\Authenticate::class, ];
如果我们要使用\Illuminate\Auth\Middleware\Authenticate::class这个中间件就应该这样来写:
Route::get('hello/laravel-china','XXController@index')->middleware('auth');
定义路由时候调用middleware方法,参数值是auth, 这样访问这个路由的时候,就会执行该中间件。
第三种,中间件组/$middlewareGroups:
看上边的路由中间件,我们可以感觉到这样添加路由中间件是很麻烦的事,如果我们要执行100个中间件,那就要在定义路由时候添加100个。但有了中间件组就不用这么麻烦了!我们来看下中间件组是怎么定义的。
protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\EncryptCookies::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/路由中间件,有些个别的请求,我们需要执行特别的中间件时,就适合定义在这属性里面。
以上就是关于laravel框架中间件的分享,上面简单的介绍了三种中间件的作用和使用,需要的朋友可以参考,希望大家阅读完这篇能对$middleware $middlewareGroup $routeMiddleware有清晰的了解。
文本转载自脚本之家免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
SimpleXML 扩展提供了一种获取 XML 元素的名称和文本的简单方式,只要您知道 XML 文档的布局。SimpleXML 转换 XML 文档到 SimpleXMLElement 对象。通过正常的属性选择器和数组迭代器,这个对象能够像其他对象一样被处理。提示:与 DOM 或者 Expat 解析器比较,SimpleXML 只需要几行代码就能读取元素中的文本数据
事务指的是访问并可能更新数据库中各种数据项的一个程序执行单元。文本主要给大家介绍的就是thinkPHP中事务操作的相关内容,感兴趣的朋友可以参考参考。
在本篇文章里小编给大家整理了一篇关于php缓存的类型总结及用法,对此有需要的朋友们可以跟着学习下。
这篇文章主要介绍了PHP获取访问设备信息的方法,结合实例形式分析了php针对访问设备的浏览器类型、浏览器语言、操作系统类型、访客IP、访客地址等相关函数封装与使用技巧,需要的朋友可以参考下
在本篇文章里,小编给大家分享了使用PHP检查URL是否包含特定字符串的相关操作方法,有需要的朋友们学习下。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008