thinkphp5 mysql uuid_TP6_基类控制器如何向中间件传参

本文介绍了在ThinkPHP6框架中,如何在基类控制器中使用中间件进行权限验证,并将子类控制器的属性传递给中间件。通过在基类的初始化方法中动态增加对象属性,实现控制器与中间件之间的参数交互,同时展示了登录控制器和首页控制器的实例,以及权限检测中间件的实现。
摘要由CSDN通过智能技术生成

最近已经在着手写LayTp2.0版本。主要是把TP内核升级到6.x.x。

目前写到了后台登录。

需求:

需要判断是否已经有了登录凭证,如果没有登录凭证就跳转至登录界面,如果有登录凭证就把凭证信息传递给控制器使用。

这里牵涉到三个控制器,一个中间件。它们分别是:

后台控制器基类,后台登录控制器,后台首页控制器,权限检测中间件

后台登录控制器和后台首页控制器都集成了后台控制器基类

在基类控制器中,定义了一个属性,

/**

* 无需登录的方法,同时也就不需要鉴权了

* @var array

*/

protected $noNeedLogin = [];继承了基类的控制器,后台首页控制器和后台登录控制器可以自行定义这个属性,来设置当前控制器哪些方法不需要登录。

基类控制器需要执行Auth权限验证的中间件,用以拦截请求,判断用户是否已经登录。

底部贴出来的代码是已经实现好的。

注意点:

1.TP6中,如果想要拦截请求,返回json数据或者执行页面跳转,均需要在中间件中实现;

2.为了实现把子类控制器设置的属性传递给基类调用的中间件,需要在基类的初始化方法中给$request对象增加属性这一点就是TP6中,如何在控制器中,直接向他调用的中间件传参的方式。这也是基于PHP是世界上最好的语言才能实现。因为PHP可以动态的增加对象属性。

3.中间件对用户凭证进行判断后,得到的用户对象,需要再次使用return $next($request, $this

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值