• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > Laravel中三种中间件的作用

Laravel中三种中间件的作用

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了Laravel,三种中间件等相关知识,希望对您有所帮助

下面给大家介绍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/路由中间件,有些个别的请求,我们需要执行特别的中间件时,就适合定义在这属性里面。**


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • laravel与thinkphp之间的区别与优缺点
  • 说说在Laravel中怎么执行Shell命令 ?
  • Laravel中用Observer事件致Redis队列异常问题
  • 手把手带你使用Vue + Laravel开发一个简单的 CRUD 应用
  • 分享个人推荐的Laravel或其它框架的编程规范
  • Laravel中三种中间件的作用
  • 解决Laravel使用laravel-excel扩展包(maatwebsite/excel)导入报错问题
  • 分享一个顺丰同城配送的扩展包并在laravel中使用
  • 介绍Laravel8路由模块新增missing方法
  • 解析如何进行Laravel表单验证分层设计和验证场景应用

相关文章

  • 2022-04-29Navicat连接Mysql8.0.11出现1251错误怎么办
  • 2022-04-29Illustrator绘制卡通立体效果的小熊图标
  • 2022-04-29如何用python正则表达式匹配字符串?
  • 2022-04-29详解thinkphp6后台添加google登录验证
  • 2022-04-29Photoshop制作2013花纹装饰艺术字
  • 2022-04-29聊聊node中怎么使用Nest.js 实现简易版请求监控
  • 2022-04-29将DedeCMS根目录下的data目录迁移到web以外目录方法
  • 2022-04-29Laravel删除Cookie的小坑
  • 2022-04-29vue element el-transfer增加拖拽功能
  • 2022-04-29WordPress如何创建page页面并添加跳转链接

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • Navicat连接Mysql8.0.11出现1251错误怎么办
    • ES6中class是语法还是语法糖
    • Laravel8.5添加用户权限管理的方法详解
    • Photoshop绘制一个复古的游戏手柄
    • 3大技巧秒杀百度的首页排名
    • PHP下载大文件失败并限制下载速度的实例代码
    • Illustrator绘制超酷效果的立体字教程
    • 做好网站站内链接分配 提高网站百度指日可待
    • Photoshop制作复古黄金文字效果
    • dedecms织梦图集上传图片自动获取图片名做注释

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有