Laravel5中间件, 顾名思义, 可以理解为 中间的那个类, 那么中间是什么意思呢?
我们从输入URL开始就对网站进行请求了, 这里刚进来就是 开始, 到最后 我们的目标出现, 就是结束, 那么 开始 与 结束中间 就是 中间件 出现的地方, 那么在这中间我们可以干什么呢?比如, 看看你是否登陆, 看看你是否通过是 跨站 请求, 你输入的信息是否 符合要求等
Laravel5中中间件的应用, 和早期的钩子, TP5中的行为都是一个意思, 先前有写过TP5中行为的应用实例, 这里一个小例子说明下Laravel5中中间件的简单用法.
一. 生成一个中间件 php artisan make:middle CheckAge [生成一个检查请求年龄的 中间件 位置:App\Http\Middleware]
namespace App\Http\Middleware; use Closure; class CheckAge { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if ($request->input('age') >= 150) { echo "乖乖, 有这么大的岁数的吗?再说, 我总是18岁哟"; } return $next($request); //这上面的代码是我们自己定义的 } }
二. 中间件的调用
方法一: routes/web.php
use App\Http\Middleware\CheckAge; Route::post("news/store",'News@store')->middleware(CheckAge::class);
方法二: App\Http\Kernel.php [注册中间件, 在使用时可以直接调用]
1> 将类 放到 $middleware数组中\App\Http\Middleware\CheckAge::class[全局自动调用]
2> 将类放到$middlewareGroups中的WEB中 [路由WEB中直接自动调用]
3> 放到 $routeMiddleware 中 路由调用 键名
'CheckAge' => \App\Http\Middleware\CheckAge::class,
调用:Route::post("news/store",'News@store')->middleware('CheckAge');