ThinkPHP 5.1 中间件中判断要访问的操作是否存在

按惯例还是吐槽 ThinkPHP 官方社区极度不友好,提问基本得不到答案,更很少有官方人员回复。

ThinPHP 5.1 中间件判断 action 是否存在

中间件

    public function handle($request, \Closure $next)
    {
        //验证action是否存在
        if (!check_action_exists($request)) {
            return error("api not found.");
        }

        //验证 Token
        $checkResult = valid_token();
        if ($checkResult != '') {
            return error($checkResult);
        }

        return $next($request);
    }

common.php

/**
 * 检查操作是否存在
 * @param $request
 * @return bool
 */
function check_action_exists($request)
{
    $action     = $request->action();
    $module     = $request->module();
    $controller = $request->controller();
    $classpath  = sprintf('app\\%s\\controller\\%s', $module, $controller);
    return method_exists($classpath, $action);
}

原文链接:https://segmentfault.com/q/1010000018730389

最后修改:2019 年 04 月 02 日 11 : 54 AM
如果觉得我的文章对你有用,请随意赞赏

发表评论