在 Bootstrap ZF2 上访问查询参数

access query params onBootstrap ZF2

我正在休息 api 和 accessToken onBootstrp 以便可以验证和 return 如果未通过验证和授权,如果找到则获取用户 ID 并设置为会话,以便它通过 http 请求可用。 我的 api 电话是这样的:

/todos/5?accessToken=75a65839e7041da05a4257e441d778af

我这样试过

$eventManager->attach('route', function(MvcEvent $mvcEvent) {
        $params = $mvcEvent->getRouteMatch()->getParams();
        print_r($params);
    });

我得到的 id 是 5 但没有得到 accessToken

params from $mvcEvent->getRouteMatch()->getParams(); 为您提供路由数组中声明的所有参数(来自配置)。

url 部分的格式:accessToken=75a65839e7041da05a4257e441d778af 不属于此路由的配置,而是由另一部分提供的。

这就是为什么你的 print_r 没有显示这个小东西。

如何在 Module onBootstrap() 函数中检索请求参数:

public function onBootstrap(MvcEvent $event)
{
    $application = $event->getApplication();

    $application->getEventManager()->attach('route', function(MvcEvent $event) {
        $request    = $event->getRequest();
        $routeMatch = $event->getRouteMatch();

        // Route params - $routeParams is an array
        $routeParams = $routeMatch->getParams();

        // Retrieveing Query and POST params is only possible if the request is an instance of \Zend\Http\Request
        if ($request instanceof \Zend\Http\Request) {
            // Query params - $queryParams is an instance of \Zend\Stdlib\Parameters
            $queryParams = $request->getQuery();
            // POST params - $postParams is an instance of \Zend\Stdlib\Parameters
            $postParams  = $request->getPost();

            print_r($queryParams);
            print_r($postParams);
        }

        print_r($routeParams);
    });

}