当前位置: 首页 > news >正文

thinkphp中间件

定义中间

可以通过命令行指令快速生成中间件

php think make:middleware Check

这个指令会 app/middleware目录下面生成一个Check中间件。

<?phpnamespace app\middleware;class Check
{public function handle($request, \Closure $next){if ($request->param('name') == 'think') {return redirect('index/think');}return $next($request);}
}

middleware:

注册一个中间件:

如果没有返回return $next($request),那它就没有办法往下执行。所以就当个固定格式就可以了

前/后置中间件

1. 将$next($request)放在方法底部的方式,属于前置中间件;

2. 前置中间件就是请求阶段来进行拦截验证,比如登录判断、跳转、权限等;

3. 而后置中间件就是请求完毕之后再进行验证,比如写入日志等等;

public function handle($request, \Closure $next){//中间件代码,前置
return $next($request);}public function handle($request, \Closure $next){$response = $next($request);//中间件代码,后置
return $response;}

1. 中间件提供了一个end()方法,可以在中间件执行到最后时执行;


public function end(Response $response){//中间件执行到最后执行
echo $response->getData();}

局部中间件

路由中间件

1. 创建一个给路由使用的中间件,判断路由的ID值实现相应的验证

class Auth{public function handle($request, \Closure $next){if ($request->param('id') == 10) {echo '是管理员!';}return $next($request);}}

1. 路由方法提供了一个middleware()方法,让指定的路由采用指定的中间件;

Route::rule('ar/:id', 'Address/read')
->middleware(\app\middleware\Auth::class);
->middleware([Auth::class, Check::class]); //支持多个中间件,这里use了

http://www.dtcms.com/a/265397.html

相关文章:

  • Redis—哨兵模式
  • OpenCV篇——项目(二)OCR文档扫描
  • DHCP中继及动态分配
  • 万字详解AVL树
  • 【指针(4)-- 深入理解指针】
  • “AI+”赋能千行百业创新融合的应用场景
  • UE5音频技术
  • 【动态规划】P11188 「KDOI-10」商店砍价|普及+
  • 钉钉企业应用开发系列:前端实现自定义右上角菜单(dd.http + Vue3)
  • 缺少关键的 MapReduce 框架文件
  • 数据仓库DataVault建模方法的前世今生
  • 【Python】图像识别的常用功能函数
  • MyBatis 之基础概念与框架原理详解
  • 【AI News | 20250702】每日AI进展
  • 设计模式篇:理解工厂模式
  • PyTorch 安装使用教程
  • 【51单片机串行通信实验】2022-6-3
  • 数据库基础——事务隔离级别
  • 热血三国建筑攻略表格
  • Dubbo RPC 序列化问题记录
  • 信号与槽(1)
  • JXLS 库导出复杂 Excel
  • 多模态AI Agent技术栈解析:视觉-语言-决策融合的算法原理与实践
  • MySQL 8.0 OCP 1Z0-908 题目解析(18)
  • 如何摆脱情绪的自动驾驶模式:掌控你的内心反应
  • 如何将信息从 iPhone 同步到Mac(完整步骤和示意图)
  • 网络工具如何帮助消除网络安全风险
  • 解决RHEL/Rocky Linux 虚拟化KVM添加 物理主机异常
  • Python Rich 详解:让终端输出焕发新生
  • 一、Docker:一场颠覆应用部署与运维的容器革命