文章目录
Laravel 6 - 第一章 简介
Laravel 6 - 第二章 项目搭建
Laravel 6 - 第三章 文件夹结构
Laravel 6 - 第四章 生命周期
Laravel 6 - 第五章 控制反转和依赖注入
Laravel 6 - 第六章 服务容器
Laravel 6 - 第七章 服务提供者
Laravel 6 - 第八章 门面
Laravel 6 - 第九章 契约
Laravel 6 - 第十章 路由
Laravel 6 - 第十一章 中间件
Laravel 6 - 第十二章 控制器
Laravel 6 - 第十三章 请求
Laravel 6 - 第十四章 响应
Laravel 6 - 第十五章 验证器
Laravel 6 - 第十六章 Artisan命令
目录
- 文章目录
- 一、中间件(middleware)
- 二、使用步骤
- 1.创建中间件
- 2.编写中间件
- 3.注册中间件
- 4.使用中间件
- 5.中间件组
- 6.排序
- 三、总结
一、中间件(middleware)
中间件(Middleware)
提供了一种机制,用于过滤进入应用程序的 HTTP 请求,可以执行一些常见的任务,如:身份验证、日志记录、CORS(跨源资源共享)处理等。
二、使用步骤
1.创建中间件
使用 artisan cli
创建一个新的中间件(CheckUsernameMiddleware)
,如下:
$ php artisan make:middleware CheckUsernameMiddleware
如上命令会在 app/Http/Middleware
下新建 中间件(CheckUsernameMiddleware)
类。
2.编写中间件
接1
中例子,在 中间件(CheckUsernameMiddleware)
的 handle
方法中编写处理逻辑,如下:
如上,前置逻辑
是在应用处理请求之前执行,后置逻辑
是在应用处理请求之后执行。
3.注册中间件
接1
中的例子,打开 app/Http/Kernel.php
文件,找到 $routeMiddleware
数组,将中间件别名(checkUsername)
映射到 CheckUsernameMiddleware
。如下:
4.使用中间件
1、路由中间件
接3
中例子,在路由文件(如:routes/api.php
)添加如下内容:
表示只会在 /show
上运行中间件(CheckUsernameMiddleware)
,其他同理,使用方法可参考Laravel 6 - 第十章 路由中路由组
的例子。
2、全局中间件
接1
中例子,在 app/Http/Kernel.php
文件中找到 $middleware
数组并添加中间件(CheckUsernameMiddleware)
,如下:
表示在应用程序的所有请求中都会运行中间件(CheckUsernameMiddleware)
,且无需在路由文件(如:routes/api.php
)指定。
5.中间件组
以项目默认中间件组为例,如果想把多个中间件打包成一个组,从而方便使用,则可在app/Http/Kernel.php
文件中的 $middlewareGroups
数组中添加如下内容:
在路由中使用,如下:
6.排序
以项目默认中间件组为例,如果想让中间件以特定的顺序执行,则可在app/Http/Kernel.php
文件中的 $middlewarePriority
数组中添加如下内容:
如上会将强制非全局中间件
始终保持给定的顺序。
三、总结
使用中间件
可以轻松地过滤、修改进入应用程序的请求。