- 介绍
- 示例A
- 1 创建middleware中间件
- 2 全局使用中间件
- 3 路由中使用中间件
- 3 在控制器中使用中间件
- 4 中间件传递参数
- 5 Terminable 中间件响应后调用的方法
- 示例B - 中间件传递参数到控制器
中间件提供了一种方便的机制过滤进入应用程序的 HTTP 请求。例如,Laravel 包含一个中间件,验证您的应用程序的用户身份验证。如果用户未被认证,中间件会将用户重定向到登录界面。然而,如果用户通过身份验证,中间件将进一步允许请求到应用程序中。
当然,除了身份认证以外,还可以编写另外的中间件来执行各种任务。例如:CORS 中间件可以负责为所有离开应用的响应添加合适的头部信息;日志中间件可以记录所有传入应用的请求。
Laravel 自带了一些中间件,包括身份验证、CSRF 保护等。所有这些中间件都位于 app/Http/Middleware 目录。
总结
要创建中间件,请执行以下过程
使用 artisan 命令创建中间件 php artisan make:middleware 中间件名. 在 app→Http 文件夹中的 kernel.php 中注册中间件 在创建的中间件中编写逻辑 将中间件分配给路由或控制器或全局注册中间件
示例A 1 创建middleware中间件创建中间件的命令:
php artisan make:middleware GetCurrentTime
该命令会在 app/Http/Middleware
目录下创建一个新的GetCurrentTime
类,
下面我们来演示一下中间件的简单使用 编写一个显示时间的middleware:
编写完成的中间件必须注册之后才能使用: 在app\Http\Kernel.php
中注册
protected $middleware = [
\App\Http\Middleware\GetCurrentTime::class,
];
因为是全局所以没配置路由情况下显示如下:
在app\Http\Kernel.php
中的protected $routeMiddleware
中注册路由中间件
protected $routeMiddleware = [
'get_current_time'=>\App\Http\Middleware\GetCurrentTime::class,
];
显示如下:在路由后面使用链式加middleware(‘你定义的路由中间件的名称’);
Route::get('/', function () {
return view('welcome');
})->middleware('get_current_time');
访问其他路由没有时间显示
路由频率限制
在 Laravel 中该功能通过内置的 throttle 中间件来实现,该中间件接收两个参数,第一个是次数上限,第二个是指定时间段(单位:分钟):
Route::get('test','TestController@index')->middleware('throttle:3,1');
路径:laravel5\app\Http\Controllers\TestController.php
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?