用Laravel的中间件能实现什么功能,如何自定义中间件
Admin 2022-06-15 群英技术资讯 1506 次浏览
今天就跟大家聊聊有关“用Laravel的中间件能实现什么功能,如何自定义中间件”的内容,可能很多人都不太了解,为了让大家认识和更进一步的了解,小编给大家总结了以下内容,希望这篇“用Laravel的中间件能实现什么功能,如何自定义中间件”文章能对大家有帮助。在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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
php怎样执行shell命令?这篇文章主要给大家演示一些普通的shell命令,有这方面学习需要的朋友可以看一下php执行shell命令的流程,以下有具体的代码。
PHP透明地支持 HTTP cookie。cookie是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制。可以用 setcookie() 或 setrawcookie() ...
下面由phpstorm教程栏目给大家介绍PhpStorm怎么连接docker容器内的php XDebug进行断点调试,希望对需要的朋友有所帮助!
一些朋友遇到php安装扩展模块后,重启不生效的情况,这是什么原因呢?要怎么样解决?下面有php扩展安装步骤以及解决php扩展安装不生效的办法,供大家参考。
如何实现php随机发扑克牌?扑克牌属于经典游戏之一,我们知道每次发放扑克牌都是随机的,那么用PHP代码要怎么实现这个效果呢?下面就分享一个PHP实现的简易随机发扑克牌代码,感兴趣的朋友可以看一下。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008