站长资讯网
最全最丰富的资讯网站

laravel的中间件有什么用

在laravel中,中间件的作用就是过滤HTTP请求,根据不同的请求来执行不同的逻辑操作;中间件可以进行请求数据的拦截处理和数据检验,并且进行逻辑处理后判断是否允许进入下一个中间件。

laravel的中间件有什么用

本文操作环境:Windows10系统、Laravel6版、Dell G3电脑。

laravel的中间件有什么用

中间件顾名思义是指在请求和响应中间,进行请求数据的拦截处理,数据校验,并且进行逻辑处理后判断是否允许进入下一个中间件;中间件分为前缀中间件,后置中间件;可以用于权限认证、日志记录等。

简单来说中间件在 laravel 中的作用就是过滤 HTTP 请求,根据不同的请求来执行不同的逻辑操作。

我们可以通过中间件实现以下功能:

  • 指定某些路由

  • 设置 HTTP 响应头

  • 记录请求

  • 过滤请求的参数

  • 决定是否启用站点维护模式

  • 响应前后做一些必要的操作

自定义中间件

命令行执行下面的简单命令,就可以轻松创建一个新的中间件

php artisan make:middleware <MiddlewareName> //MiddlewareName 就是你要创建的中间件的名字

执行上面的命令,Laravel 会在 app/Http/Middleware 目录下自动创建一个只包含 handle 方法的中间件。

<?php namespace AppHttpMiddleware; use Closure; class RedirectIfSuperAdmin {     /**      * Handle an incoming request.      *      * @param  IlluminateHttpRequest  $request      * @param  Closure  $next      * @return mixed      */     public function handle($request, Closure $next)     {         return $next($request);     } }

在中间件被调用的时候,handle 方法就会执行。这里需要注意的是 handle 方法默认有两个参数 $request 和 $next 。 $request 用来接受应用的请求组求, $next 将请求传递给应用程序。这两个参数是 handle 必不可少的!中间件也包括前置中间件和后置中间件。

“前置中间件” 顾名思义在将请求转发到应用程序之前处理一些逻辑。 另一方面,在中间件之后,在应用程序处理了请求并生成响应之后运行。

前置中间件:

<?php namespace AppHttpMiddleware; use Closure; class RedirectIfSuperAdmin {     /**      * Handle an incoming request.      *      * @param  IlluminateHttpRequest  $request      * @param  Closure  $next      * @return mixed      */     public function handle($request, Closure $next)     {         //你的逻辑就在这里         return $next($request);     } }

后置中间件:

<?php namespace AppHttpMiddleware; use Closure; class RedirectIfSuperAdmin {     /**      * Handle an incoming request.      *      * @param  IlluminateHttpRequest  $request      * @param  Closure  $next      * @return mixed      */     public function handle($request, Closure $next)     {         $response = $next($request);         //你的逻辑就在这里 例如 重定向到  `/`         return $response;     } }

laravel的中间件有什么用

赞(0)
分享到: 更多 (0)
网站地图   沪ICP备18035694号-2    沪公网安备31011702889846号