Laravel中三种中间件的作用

Laravel中三种中间件的作用,第1张

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

相关推荐:最新的五个Laravel视频教程

总结

以上是内存溢出为你收集整理的Laravel中三种中间件的作用全部内容,希望文章能够帮你解决Laravel中三种中间件的作用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1218702.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)