【发布时间】:2014-10-27 17:05:24
【问题描述】:
对于我的问题,无论是从谷歌还是从 SO,我都没有找到任何答案,所以我决定问一下。 有没有简单的方法来获取当前url的referrer对应的路由参数?
我在控制器操作的上下文中,所以我可以访问 $request 和 $response 对象。我实际上是使用以下方法检索引荐来源网址:
$referer = $request->getHeader('referer');
$refererUri = $referer->getUri();
我真正想要的是知道我在 $refererUri 变量中得到的 url 是否与具有 "connect" 的路由匹配> 参数定义为真,路由定义如下:
'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 对象作为回报,我将能够获得我想要的参数的值。
但是对于一个非常快速的检查来说,它确实看起来很重,而且我似乎无法实现这一点,因为 Route 不是我可以轻松实例化的对象。
有什么想法吗?
编辑:我发现 this post: 这似乎与我要求的非常接近,但在提出的第一个答案中,我无法获得 $routeStack 对象的来源。有什么线索吗?
【问题讨论】:
标签: php routing zend-framework2