• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    浅谈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中的三种中间件的作用就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • laravel利用中间件做防非法登录和权限控制示例
    • laravel在中间件内生成参数并且传递到控制器中的2种姿势
    • Laravel获取当前请求的控制器和方法以及中间件的例子
    • Laravel框架控制器的middleware中间件用法分析
    • laravel利用中间件防止未登录用户直接访问后台的方法
    • Laravel 6 将新增为指定队列任务设置中间件的功能
    • laravel框架中间件 except 和 only 的用法示例
    • Laravel5.1框架注册中间件的三种场景详解
    • 浅谈laravel中间件的创建思路
    上一篇:laravel config文件配置全局变量的例子
    下一篇:Laravel开启跨域请求的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    浅谈Laravel中的三种中间件的作用 浅谈,Laravel,中的,三种,中间件,