Как получить текущий URL без параметров в Yii? - PullRequest
11 голосов
/ 24 декабря 2011

Я использую Yii.
, если мой URL-адрес http://localhost/evengee/event/page/id/2/sfn+master/?tab=3 Мой реальный URL-адрес (путь к файлу) только http://localhost/evengee
Как бы получить, предпочтительно в виде:

  1. полный URL http://localhost/evengee/event/page/id/2/sfn+master/?tab=3
  2. URL без явных параметров http://localhost/evengee/event/page/id/2/sfn+master/

Я знаю, что могу разделить / взорвать str_replace с помощью?и используйте $ _SERVER.Предпочел бы использовать нативные методы Yii.

Ответы [ 3 ]

18 голосов
/ 24 декабря 2011

Для:

  • полный URL (http://localhost/even/page/id/2/?t=3) использовать Yii::app()->request->getUrl(),

  • URL без параметров (http://localhost/even/page/id/2/ использовать Yii::app()->request->getPathInfo().

Второй даст вам URL без схемы, сервера и строки запроса. Это кажется достаточно хорошим.

4 голосов
/ 24 декабря 2011

Чтобы получить полный URL, используйте метод getRequestUrl() из CHttpRequest Yii::app()->request->getRequestUrl();

Вы можете получить имя контроллера, модуля и действия текущей страницы из методов CApplication. Yii::app()->getController()->id; //gets you the controller id

Yii::app()->getController()->getAction()->id; //gets you the action id

Вы можете собрать URL-адрес, используя свойство baseURL CApplication

Yii::app()->baseURL

0 голосов
/ 24 августа 2018

Лучший и короткий путь, который я нашел:

Yii::app()->createAbsoluteUrl(Yii::app()->request->getPathInfo());

ИЛИ

$this->createAbsoluteUrl(Yii::app()->request->getPathInfo());

...