LARAVEL5里中间件的应用

时间:2017-03-23 15:58:05 类型:PHP
字号:    

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');