-> 过滤所有进入应用的HTTP请求
-> 在请求过程中执行相应的任务
-> 进行统一认证,如CSRF Auth等认证
使用php artisan make:middleware 中间件名 来创建,会创建在app/http/Middleware文件夹下,新创建的文件内容为:
namespace App\Http\Middleware; // 引入中间件模块
use Closure; //实例化一个关闭方法
class 中间件名
{
// $request,接收到的请求;Closure $next,创建一个关闭该请求的函数
public function handle($request, Closure $next)
{
@1 表达式部分
return $next($request); // 关闭请求
}
}
扩展:redirect(to:‘/path’); // laravel中,跳转页面的函数
首先,在上边的@1中,写入需求代码。
然后,需要将这个中间件,给注册一下。打开app/http/Kernel.php,里面有一个$routeMiddleware的对象方法,将新注册的中间件,写入其中,如下:
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'键名,通常为中间件的名称'=>\App\Http\Middleware\中间件名::class
……
];
打开Router/Web.php
新建一个路由,比如:
Route::get('/list/{name}', 'ListController@Middleware_ceshi');
打开app/http/controller文件夹下的控制器文件
在控制器中,新建一个名为Middleware_ceshi的对象方法,并用$name接收请求中的name参数。
回到路由中,使用链式的方法,调用新注册的中间件:
Route::get('/list/{name}','ListController@middleware_ceshi')->middleware('注册时自定义的名称');