laravel的常用中间件有哪些
laravel的常用中间件有:1、“$middleware”全局中间件,要对所有的请求要做一些处理的时候,就适合定义在该组件中;2、“$routeMiddleware”路由中间件;3、“$middlewareGroups”中间件组。
本教程操作环境:windows7系统、Laravel6版、Dell G3电脑。
laravel常用的三个中间件
$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属性:
这个属性称为中间件组,为什么说是中间件组呢?我们之前说了路由中间件,是不是感觉这样添加路由中间件很麻烦,比如我们执行10个中间件,是不是就要在定义路由时候添加10个呢?有了中间件组就不用这么麻烦了。我们来看下中间件组是怎么定义的。
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:路由中间件,有些个别的请求,我们需要执行特别的中间件时,就适合定义在这属性里面。
引用:https://laravel-china.org/topics/7392/laravel-three-middleware-functions
相关推荐:最新的五个Laravel视频教程
以上是laravel的常用中间件有哪些的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Laravel邮件发送失败时的退信代码获取方法在使用Laravel开发应用时,经常会遇到需要发送验证码的情况。而在实�...

Laravel计划任务运行无响应排查在使用Laravel的计划任务调度时,不少开发者会遇到这样的问题:schedule:run...

在dcatadmin(laravel-admin)中如何实现自定义点击添加数据的表格功能在使用dcat...

Laravel框架中Redis连接的共享与select方法的影响在使用Laravel框架和Redis时,开发者可能会遇到一个问题:通过配置...

在Laravel多租户扩展包stancl/tenancy中自定义租户数据库连接使用Laravel多租户扩展包stancl/tenancy构建多租户应用时,...

LaravelEloquent模型检索:轻松获取数据库数据EloquentORM提供了简洁易懂的方式来操作数据库。本文将详细介绍各种Eloquent模型检索技巧,助您高效地从数据库中获取数据。1.获取所有记录使用all()方法可以获取数据库表中的所有记录:useApp\Models\Post;$posts=Post::all();这将返回一个集合(Collection)。您可以使用foreach循环或其他集合方法访问数据:foreach($postsas$post){echo$post->

Laravel数据库迁移过程中出现类重复定义问题在使用Laravel框架进行数据库迁移时,开发者可能会遇到“类已使用�...
