我是 Zend Framework [版本 1] 开发人员,现在我正在尝试学习 Yii 框架。
如何在 Yii 框架中获取当前路由器?
对于以下示例 URL http://site.ru/forum/index?var=val
:
Yii::app()->getRequest()->getQueryString()
会回来var=val
,
Yii::app()->getRequest()->getPathInfo()
会回来forum/index
,
Yii::app()->getRequest()->getBaseUrl()
会回来/forum
,
Yii::app()->getRequest()->getUrl()
会回来forum/index?var=val
,
Yii::app()->getRequest()->getHostInfo()
会回来http://site.ru
,
Yii::app()->getRequest()->getRequestUri()
将返回forum/index?var=val
。
如果您关注的是路线,而不是与路径相关的信息:在大多数视图文件(和布局)中,您可以使用$this->route
,如果您不在正确的上下文中,$this
那么您可以经常使用Yii::app()->controller->route
.
两者都从 url 管理器返回当前匹配的路由。就像是:
site/index
site/error
user/edit
此外,要让当前控制器处于使用状态,您可以使用$this->id
返回类似site
或user
The other answer saved me lot of time, but there is a little consideration. I used:
Yii::app()->getRequest()->getRequestUri(),
You should also take the /
in your result. For example for http://www.tchaps.ru/ru
you should have /ru
.