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 数据库迁移中integer类型是无法指定长度的问题)
- laravel 开发自定义组件(解决Laravel blade模板转义html标签的问题)
- laravel队列流程(Laravel 创建指定表 migrate的例子)
- laravel框架详解(laravel 5.3 单用户登录简单实现方法)
- laravel关联查询限制数量(laravel-admin 后台表格筛选设置默认的查询日期方法)
- laravel api接口开发版本控制(Laravel 创建可以传递参数 Console服务的例子)
- laravel命令大全详解(Laravel框架中缓存的使用方法分析)
- laravel关于视图使用语法(在laravel中使用with实现动态添加where条件)
- laravel指定管理员(在laravel-admin中列表中禁止某行编辑、删除的方法)
- laravel分页(laravel5.5添加echarts实现画图功能的方法)
- laravel 后台管理框架(关于Laravel-admin的基础用法总结和自定义model详解)
- laravel常用的辅助函数介绍(Laravel向公共模板赋值方法总结)
- laravel数据表配置(laravel实现按月或天或小时统计mysql数据的方法)
- laravel跨域设置(解决Laravel自定义类引入和命名空间的问题)
- yii2和laravel框架哪个比较简单(关于Yii中模型场景的一些简单介绍)
- laravel多用户认证实例(Laravel框架验证码类用法实例分析)
- 一个30岁男人外遇失败的全过程(一个30岁男人外遇失败的全过程)
- 《无敌破坏王2》 不聊彩蛋,聊聊我从动画里看到的现实那些事儿(无敌破坏王2不聊彩蛋)
- 《寄生虫》 三观不正 人类悲欢从来不相通,感同身受也并非本能(寄生虫三观不正)
- 这部动漫中的女孩子,可比101女孩更加励志(这部动漫中的女孩子)
- 《白狐的人生》热拍 贾征宇偶像包袱难自弃 图(白狐的人生热拍)
- 七夕取消了,牛郎织女没做核酸七夕已经取消(牛郎织女没做核酸七夕已经取消)
热门推荐
- 云服务器是什么到底有什么用(云服务器有什么用)
- wamp服务器的配置文件包含(解析关于wamp启动是80端口被占用的问题)
- 搬瓦工用哪个端口号(搬瓦工bandwagon服务器购买及初步环境搭建图文教程)
- 阿里云linux服务器怎么进(阿里云Linux主机安装WDCP管理面板包含lamp+lnmp+lanmp环境)
- kalilinux安装到u盘教程学习(kali安装docker和portainer的配置方法)
- html基础知识javascript(JavaScript+html实现前端页面滑动验证)
- docker端口访问不了(docker设置了端口映射,不能访问的解决方案)
- vue一个组件两种样式(Vue实现动态样式的多种方法汇总)
- zabbix 容器(zabbix监控docker应用配置)
- canvas如何将一组数据生成柱子图(Canvas环形饼图与手势控制的实现代码)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9