这似乎应该是一项简单的任务。我需要Controller中一个函数的当前URL。可以从多个动作调用此函数,最终目标是设置表单的动作属性。 (旁注:如果URL以'#'开头,IE似乎不会发送ajax请求)。
我觉得我的google-fu今天已经关闭,因为我找不到一个很好的方法来做这个Zend Framework 2.我现在有这条线,但感觉非常笨重:
$this->url()->fromRoute(
$this->getServiceLocator()
->get('Application')
->getMvcEvent()
->getRouteMatch()
->getMatchedRouteName()
);
答案 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