如何在Yii中获取没有参数的当前URL?

时间:2011-12-24 00:38:07

标签: php url yii url-routing

我正在使用Yii 如果我的网址是http://localhost/evengee/event/page/id/2/sfn+master/?tab=3 我的真实网址(文件路径)仅为http://localhost/evengee
我最好如何获得,

  1. 完整网址http://localhost/evengee/event/page/id/2/sfn+master/?tab=3
  2. 没有明确参数的网址http://localhost/evengee/event/page/id/2/sfn+master/
  3. 我知道我可以拆分/爆炸str_replace吗?并使用$ _SERVER。宁愿使用 Yii原生方法。

3 个答案:

答案 0 :(得分:18)

有关:

  • 完整网址(http://localhost/even/page/id/2/?t=3)使用 Yii::app()->request->getUrl()

  • 不带参数的网址(http://localhost/even/page/id/2/使用 Yii::app()->request->getPathInfo()

第二个将为您提供没有架构,服务器和查询字符串的URL。这似乎已经足够了。

答案 1 :(得分:4)

要获取完整网址,请使用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

您可以使用CApplication的baseURL属性将URL拼凑在一起

Yii::app()->baseURL

答案 2 :(得分:0)

我发现的最佳和较短的方法是:

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

OR

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