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

浏览:565 发布日期:2019/04/01 分类:ThinkPHP5专区 关键字: 中间件
我的控制器中注册了中间件用于token验证。    protected $middleware = [
        'CheckToken'  => ['except' => ['_empty', 'index']], //验证 token
    ];
然后不管访问哪个操作action,都会先进入CheckToken中间件里面进行验证,
我想在CheckToken里先判断一下当前访问的action是否存在,如果存在才真正去验证token,action不存在直接返回错误信息。

问题:

中间件中如何判断action是否存在?
找到有这个方法:method_exists($this,$act)但里面$this如何设置。namespace app\http\middleware;

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);
    }
}
最佳答案
评论( 相关
后面还有条评论,点击查看>>