получить URL текущей страницы и изменить действие - PullRequest
7 голосов
/ 08 мая 2011

Мне нужно указать URL текущей страницы и изменить URL действия. После этого я хочу повторить это в файле представления. Я хочу сделать это в виде файла, а не контроллера!

Есть идеи?

Ответы [ 4 ]

20 голосов
/ 08 мая 2011

Вы можете получить URL текущей страницы следующим образом:

  $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();

Не уверен, что вы подразумеваете под «изменением действия».Вы хотите изменить это, когда вы повторяете это, или вы хотите перенаправить пользователя.В любом случае, надеюсь, это поможет.

5 голосов
/ 08 мая 2014

Если ваша текущая область действия контроллера, вы можете сделать это:

$uri = $this->view->serverUrl() . $this->view->url();
1 голос
/ 31 марта 2015

$ front = Zend_Controller_Front :: getInstance ();
$ fullUrl = 'http://'.
$ front-> getRequest () -> getHttpHost ().
$ Front-> GetRequest () -> getRequestUri ();

Не забудьте протокол (в этом примере http://), если вы собираетесь использовать $fullUrl для href атрибутов

0 голосов
/ 14 июля 2015

Опоздал на вечеринку, но в проекте Zend 1 у меня сработало следующее:

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

Если вы выводите URL-адрес (предоставленный пользователем) на странице, рекомендуется использовать htmlspecialchars (), чтобы никто не отправлял ваших пользователей на http://example.com/?q=<script>nastyBusiness()</script>.

...