获取当前页面网址并更改操作

时间:2011-05-08 10:38:51

标签: zend-framework url action

我需要提供当前页面网址并更改操作网址。之后我想在视图文件中回显。 我想在视图文件中执行这些操作,而不是控制器!

你有什么想法吗?

4 个答案:

答案 0 :(得分:20)

您可以按如下方式获取当前页面网址:

  $uri = Zend_Controller_Front::getInstance()->getRequest()->getRequestUri();

  // or using userAgent view helper:
  $uri = $this->userAgent()->getServerValue('request_uri');

视图帮助器$this->userAgent()返回Zend_Http_UserAgent的实例,可以为您提供许多有用的信息。

如果您想在视图中获取操作,可以按如下方式获取:

Zend_Controller_Front::getInstance()->getRequest()->getActionName();

不确定“改变行动”是什么意思。您希望在回显它时更改它,或者您想要重定向用户。无论如何,希望这会有所帮助。

答案 1 :(得分:5)

如果您当前的范围是控制器操作,则可以执行以下操作:

$uri = $this->view->serverUrl() . $this->view->url();

答案 2 :(得分:1)

  

$ front = Zend_Controller_Front :: getInstance();
  $ fullUrl ='http://'   $ front-> getRequest() - > getHttpHost()。
  前置式$> Request()方法 - > getRequestUri();

如果您要将http://用于$fullUrl属性

,请不要忘记协议(在此示例中为href

答案 3 :(得分:0)

肯定是晚会,但以下在Zend 1项目中为我工作:

<?php echo htmlspecialchars($this->serverUrl(true)); ?>

如果您在页面上回显(用户提供的)网址,最好使用htmlspecialchars()来避免有人将您的用户发送到http://example.com/?q=<script>nastyBusiness()</script>