访问查询参数onBootstrap ZF2

时间:2016-08-02 14:31:36

标签: php zend-framework2

我正在处理rest api和accessToken onBootstrp,以便在未通过验证和授权的情况下验证并返回,如果找到则获取用户ID并设置为session,以便通过http请求可用。 我的api电话是这样的:

  

/待办事项/ 5?的accessToken = 75a65839e7041da05a4257e441d778af

我试过这个

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

我的id为5,但没有得到accessToken

2 个答案:

答案 0 :(得分:1)

来自$mvcEvent->getRouteMatch()->getParams();

参数给出了你路线数组中声明的所有参数(来自配置)。

此网址部分的格式:accessToken=75a65839e7041da05a4257e441d778af 不属于这条路线的配置,但由另一部分给出。

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

答案 1 :(得分:1)

如何在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);
    });

}