用Laravel的中间件能实现什么功能,如何自定义中间件
Admin 2022-06-15 群英技术资讯 470 次浏览
在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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
cmd运行workerman中文乱码可以通过修改cmd窗口编码格式为utf-8来解决。可以在运行前使用命令“chcp 65001”临时修改,也可以在注册表中永久修改。
Swoole不能代替Apache和Nginx这些通用的HTTP服务器。管理还是要nginx,代替不了nginx,如果你的服务大到需要HTTP/WebSocket反向代理,当然还是Nginx的反向代理更加专业些。
在开发过程中,经常会用到的一个概率就是依赖注入。我们借助依懒注入来解耦代码,选择性的按需加载服务,而这些通常都是借助容器来实现。
PHP中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。变量名与PHP中其它的标签一样遵循相同的规则。一个有效的变量名由字母或者下划线开头,后面跟上...
php设置端口号的方法:首先找到PHP配置文件所在路径;然后通过命令“vim /usr/local/php7/etc/php-fpm.d/www.conf listen = 0.0.0.0:9000”修改端口号即可。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008