php判断目标是否存在,TP5.1 中间件中如何判断要请求的操作是否存在

背景

我在控制器中注册了中间件用于token验证。

protected $middleware = [

'CheckToken'  => ['except' => ['_empty']], //验证 token

];

现象

然后不管访问哪个操作action,都会先进入CheckToken中间件里面进行验证。

目的

我想在CheckToken里先判断一下当前访问的action是否存在,如果存在才真正去验证token,action不存在直接返回错误信息。

难点

搜索发现有个方法可以检查方法是否存在。

method_exists($this, $act)

,但在中间件中的

$this

并非用户访问的那个控制器,所以这里不就不知道怎么写了。

class CheckToken

{

/**

* 验证 Token

* @param $request

* @param \Closure $next

* @return mixed|\think\response\Json

*/

public function handle($request, \Closure $next)

{

//TODO:如何验证action是否存在

$act      = $request->action(); //请求的操作

$isExists = method_exists($this, $act); //TODO:这里的 $this 如何设置

dump($isExists);

$checkResult = valid_token();

if ($checkResult != '') {

return error($checkResult);

}

return $next($request);

}

}

吐槽

ThinkPHP 的官方社区真是让人无语,提问就没人搭理,冷清的要死,做完手头这个项目就把 ThinkPHP 扔掉。

参考

原问题链接

还有一个问题没人搭理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值