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

Laravel中三种中间件的作用

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了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表单验证分层设计和验证场景应用

相关文章

  • CDR制作电脑宣传海报教程
  • MySQL 中 InnoDB 和 MyISAM 区别
  • uniapp怎么实现小程序页面的自由拖拽功能
  • Javascript获取日期的方法是什么
  • 帝国cms防止恶意注册 会员空间发布违规违禁信息
  • 揭秘Photoshop图层样式与蒙版的一些技巧
  • 织梦cms二次开发普通会员隐藏/VIP会员显示
  • 前端怎么调用后台thinkphp6验证码
  • Photoshop设计国外木纹风格的网页模板
  • 详解MySQL 联合查询 (IN和EXISTS区别)

文章分类

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

最近更新的内容

    • 最新PTCMS 14个采集规则
    • 分享推荐一款好用的TP富文本编辑器-CKEditor
    • ThinkPHP6.0 重写URL去掉Index.php的解决方法
    • MySQL 日期加减函数汇总
    • WordPress引入Dplayer并使用简码
    • PHP数组去重的5种方法有哪些?
    • Photoshop设计颗粒质感艺术字教程
    • 浅谈小程序中下拉刷新和上拉加载功能怎么实现?(附代码)
    • php如何实现图片上传的封装
    • Thinkphp极验滑动验证码实现步骤解析

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

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