laravel5怎么设置中间件(浅谈Laravel中的三种中间件的作用)
laravel5怎么设置中间件
浅谈Laravel中的三种中间件的作用在之前一直简单的认为中间件就是往middleware里添加中间件即可。现在才知道中间件有三种类型,分别为:$middleware $middlewareGroup $routeMiddleware 通过查阅资料,终于明白了这三种类型的作用和不同。
第一种,全局中间件/$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中的三种中间件的作用就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/qq_32737755/article/details/81609340
- laravel自定义条件查询(解决laravel groupBy 对查询结果进行分组出现的问题)
- laravel循环插入数据(Laravel 实现关系模型取出需要的字段)
- laravel实现跨域访问(使用laravel和ajax实现整个页面无刷新的操作方法)
- laravel数据库查询(Laravel获取所有的数据库表及结构的方法)
- laravel队列流程(Laravel 创建指定表 migrate的例子)
- laravel在中间件内生成参数并且传递到控制器中的2种姿势(laravel在中间件内生成参数并且传递到控制器中的2种姿势)
- laravel框架学习心得教程(Laravel5.7 Eloquent ORM快速入门详解)
- laravel常用的辅助函数介绍(Laravel向公共模板赋值方法总结)
- laravel提取数据库的字段(Laravel创建数据库表结构的例子)
- laravel线上如何调试(解决Laravel 不能创建 migration 的问题)
- laravel使用队列(基于laravel where的高级使用方法)
- laravel数据转换层(laravel通过a标签从视图向控制器实现传值)
- laravelblade界面(laravel5.1框架基础之Blade模板继承简单使用方法分析)
- laravel框架详解(laravel 5.3 单用户登录简单实现方法)
- laravel数据库数据代码(在Laravel的Model层做数据缓存的实现)
- laravel自定义使用方法(laravel 获取当前url的别名方法)
- 精英律师 廖佳敏封印恋情曝光,顾婕马失前蹄 你个老不死的(廖佳敏封印恋情曝光)
- 以家人之名广受好评,剧情生动引起观众共鸣,演员张新成圈粉无数(以家人之名广受好评)
- 三兄妹感情再遇波折,人设接连崩塌 《以家人之名》剧情猜不透(三兄妹感情再遇波折)
- 《小敏家》金波想要复婚 这只是他圈套的第1步,更可恶的在后面(小敏家金波想要复婚)
- 小敏家 剧情离谱一锅乱炖,但他们俩绝对是这部剧的一大 亮点(剧情离谱一锅乱炖)
- 《倚天屠龙记》再遭翻拍,关晓彤主演赵敏,蒋劲夫演张无忌,你怎么看(倚天屠龙记再遭翻拍)
热门推荐
- php实现非递归快速排序(PHP实现无限极分类的两种方式示例递归和引用方式)
- python怎么导入xlsx(用Python将结果保存为xlsx的方法)
- C#中ArrayList与Array的区别
- 面试中常见的问题有哪些
- docker怎么部署node-exporter(Docker搭建部署Node项目的方法步骤)
- php逻辑技巧图解(php版本CKEditor 4和CKFinder安装及配置方法图文教程)
- python初学篇元组(元组列表字典莫烦python基础)
- django 如何实现高并发(Django如何防止定时任务并发浅析)
- python与气象(使用Python和Prometheus跟踪天气的使用方法)
- css3各个动画效果(使用css3制作齿轮loading动画效果)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9