用Laravel的中间件能实现什么功能,如何自定义中间件
Admin 2022-06-15 群英技术资讯 967 次浏览
在laravel中,中间件的作用就是过滤HTTP请求,根据不同的请求来执行不同的逻辑操作;中间件可以进行请求数据的拦截处理和数据检验,并且进行逻辑处理后判断是否允许进入下一个中间件。
本文操作环境:Windows10系统、Laravel6版、Dell G3电脑。
中间件顾名思义是指在请求和响应中间,进行请求数据的拦截处理,数据校验,并且进行逻辑处理后判断是否允许进入下一个中间件;中间件分为前缀中间件,后置中间件;可以用于权限认证、日志记录等。
简单来说中间件在 laravel 中的作用就是过滤 HTTP 请求,根据不同的请求来执行不同的逻辑操作。
我们可以通过中间件实现以下功能:
指定某些路由
设置 HTTP 响应头
记录请求
过滤请求的参数
决定是否启用站点维护模式
响应前后做一些必要的操作
自定义中间件
命令行执行下面的简单命令,就可以轻松创建一个新的中间件
php artisan make:middleware <MiddlewareName> //MiddlewareName 就是你要创建的中间件的名字
执行上面的命令,Laravel 会在 app/Http/Middleware 目录下自动创建一个只包含 handle 方法的中间件。
<?php namespace App\Http\Middleware; use Closure; class RedirectIfSuperAdmin { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { return $next($request); } }
在中间件被调用的时候,handle 方法就会执行。这里需要注意的是 handle 方法默认有两个参数 $request 和 $next 。 $request 用来接受应用的请求组求, $next 将请求传递给应用程序。这两个参数是 handle 必不可少的!中间件也包括前置中间件和后置中间件。
“前置中间件” 顾名思义在将请求转发到应用程序之前处理一些逻辑。 另一方面,在中间件之后,在应用程序处理了请求并生成响应之后运行。
前置中间件:
<?php namespace App\Http\Middleware; use Closure; class RedirectIfSuperAdmin { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { //你的逻辑就在这里 return $next($request); } }
后置中间件:
<?php namespace App\Http\Middleware; use Closure; class RedirectIfSuperAdmin { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $response = $next($request); //你的逻辑就在这里 例如 重定向到 `/` return $response; } }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
今天小编就为大家分享一篇ThinkPHP 5.1 跨域配置方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
方法:首先打开phpstorm,依次点击顶部导航栏的“File”-“Setting”-“Plugins”-“Browse repositories”;然后在搜索框中输入“PHP”,搜索需要的PHP插件,点击“install”进行安装即可。
php如何实现商城的购物车功能?购物车是商城网站必不可少的,要具备添加,删除商品以及提交订单的功能,那么购物车的功能要怎么样实现呢?下面分享一个PHP实现购物功能的代码,有需要的朋友可以参考参考。
php数组进行堆栈的模拟:1、堆栈容器中,最后进栈的将会被最先出栈,即所谓的“先进后出”的数据结构;2、将数组当做一个栈,使用array_push()函数完成进栈操作;3、完成所有数据进栈之后,先进栈的在最下面。
比较运算符,如同它们名称所暗示的,允许对两个值进行比较。比较运算符例子名称结果$a==$b等于TRUE,如果类型转换后 $a 等于 $b。$a===$b全等T...
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008