Как получить текущий url-адрес без параметров в Yii?

Я использую 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 ответов


для:

  • полный 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 без схемы, сервера и строки запроса. Кажется, этого достаточно.


чтобы получить полный 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


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

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

или

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