ZF2 - 获取Controller中的当前URL

时间:2016-02-04 14:32:54

标签: php zend-framework2

这似乎应该是一项简单的任务。我需要Controller中一个函数的当前URL。可以从多个动作调用此函数,最终目标是设置表单的动作属性。 (旁注:如果URL以'#'开头,IE似乎不会发送ajax请求)。

我觉得我的google-fu今天已经关闭,因为我找不到一个很好的方法来做这个Zend Framework 2.我现在有这条线,但感觉非常笨重:

 $this->url()->fromRoute(
    $this->getServiceLocator()
    ->get('Application')
    ->getMvcEvent()
    ->getRouteMatch()
    ->getMatchedRouteName()
  );

2 个答案:

答案 0 :(得分:5)

你不能从请求对象中获取URI:

$这 - > Request()方法 - > getUriString()

如果你的控制器扩展了Zend\Mvc\Controller\AbstractActionController

注意:这会输出整个网址,如下所示:

 http://example.com/en/path/subpath/finalpath?test=example

答案 1 :(得分:3)

如果您的请求路线是这样的:

http://example.com/en/path/subpath/finalpath?test=example

而你只想要这个:

/en/path/subpath/finalpath?test=example

您可以执行以下操作:$this->getRequest()->getRequestUri()

  

指定我的Request对象是

的实例      

\ZF\ContentNegotiation\Request