我是Zend Framework [版本1]开发人员,现在我正在尝试学习Yii框架。
如何在Yii Framework中获取当前路由器?
答案 0 :(得分:12)
有关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
。
答案 1 :(得分:2)
如果您在路线之后,而不是与路径相关的信息:在大多数视图文件(和布局)中,您可以使用$this->route
,如果您不在正确的上下文中,则可以使用$this
{ {1}}然后您经常可以使用Yii::app()->controller->route
。
两者都从url管理器返回当前匹配的路由。类似的东西:
site/index
site/error
user/edit
此外,要使用当前控制器,您可以使用$this->id
返回site
或user
答案 2 :(得分:1)
other answer节省了我很多时间,但有一点考虑。我用过:
Yii::app()->getRequest()->getRequestUri(),
您还应该在结果中使用/
。例如,对于http://www.tchaps.ru/ru
,您应该/ru
。