Php ZF2:如何获取当前url引用人对应的路由?
对于我的问题,我没有从谷歌或SO那里找到任何答案,所以我决定提问。 有没有一种简单的方法可以获取与当前url的引用者对应的路由参数 我处于控制器操作的上下文中,因此我可以访问$request和$response对象。我实际上是通过以下方式检索推荐人:Php ZF2:如何获取当前url引用人对应的路由?,php,routing,zend-framework2,Php,Routing,Zend Framework2,对于我的问题,我没有从谷歌或SO那里找到任何答案,所以我决定提问。 有没有一种简单的方法可以获取与当前url的引用者对应的路由参数 我处于控制器操作的上下文中,因此我可以访问$request和$response对象。我实际上是通过以下方式检索推荐人: $referer = $request->getHeader('referer'); $refererUri = $referer->getUri(); 'productAdd' => array(
$referer = $request->getHeader('referer');
$refererUri = $referer->getUri();
'productAdd' => array(
'type' => 'literal',
'options' => array(
'route' => '/product/add',
'defaults' => array(
'controller' => 'Module\\Controller\\Product',
'action' => 'add',
'connect' => true
),
'spec' => '/add',
),
),
我真正想知道的是,我在$refererUri变量中得到的url是否与一个路由匹配,该路由的“connect”参数定义为true,路由定义如下:
$referer = $request->getHeader('referer');
$refererUri = $referer->getUri();
'productAdd' => array(
'type' => 'literal',
'options' => array(
'route' => '/product/add',
'defaults' => array(
'controller' => 'Module\\Controller\\Product',
'action' => 'add',
'connect' => true
),
'spec' => '/add',
),
),
现在我在$refererUri变量中得到了一个URL,如
http://local.example.com/dir/product/add
我已经考虑过的解决方案是从URL实例化一个请求对象,然后从请求对象实例化一个路由对象,这将告诉我它是否匹配。然后,如果我得到一个RouteMatch对象作为回报,我将能够得到我想要的参数的值
但是对于一个快速的检查来说,这似乎是一个沉重的任务,而且我似乎无法实现这一点,因为路由不是一个我可以轻松实例化的对象
有什么想法吗
编辑:我发现:这似乎与我要求的非常接近,但在提出的第一个答案中,我无法找到$routeStack对象的来源。有什么线索吗?我终于实现了我的目标,所以我在这里发布了在同样情况下帮助他人的答案;-) 我所做的基本上是: