获取当前请求引用URL并解析它

时间:2013-10-03 06:47:46

标签: php yii

我有一个用作渲染空间的视图(网格)。这个renderpartial网格用于两个动作。

<div id="activities"><?php echo $this->renderPartial('grid', array('model'=>$model)); ?></div>

我需要知道如何检查现在请求的操作?我需要停止从yii生成的一些脚本,并在action为'default / index /'时添加一些脚本(我的意思是调用来自default / index /),这也可以通过这种方式调用... search / default /索引/面积/行为?查询=

行动A - http://mylocalurl.com/ijob-css/index.php/search/default/index/area/act?query=

行动B - http://mylocalurl.com/ijob-css/index.php/activities/default/index/

for action b只需要添加一些脚本,并想知道如何在yii中完成这项工作?

yii中有这样的东西吗? if(yii->app->getRquest == 'action B')

编辑1

我试过这种方式,

echo Yii::app()->controller->action->id . " - " . Yii::app()->controller->id . " - " . Yii::app()->controller->module->id;

它从两个动作返回//sessionIndex - default - activities

但我想做的是,用户从哪里来到这条路?他的最后一个网址。

所以我可以轻松跟踪天气动作1或动作2

编辑2

也尝试了这种方式,echo Yii::app()->user->returnUrl;

但它会打印onlty - /ijob-css/index.php

编辑3

这样做但需要知道有没有更好的方法来获得它? $ _SERVER [ 'HTTP_REFERER'];这也会像这样http://mylocalurl.com/ijob-css/index.php/search/default/index/area/act?query=

重新整理整个网址

但我只需要“搜索/默认/索引/区域/行为?查询=”实际上模型ID甚至很好,这就是“搜索”

2 个答案:

答案 0 :(得分:2)

要使用操作ID:

Yii::app()->controller->action->id

类似于控制器:

Yii::app()->controller->id

对于模块使用:

Yii::app()->controller->module->id

您也可以使用:

Yii::app()->request->pathInfo

对于Yii预处理路径信息

答案 1 :(得分:2)

$route = Yii::app()->getUrlManager()->parseUrl(Yii::app()->getRequest());
echo $route;

但是模块,控制器,动作都可以删除,我建议给网格添加参数

$this->renderPartial('grid', compact(
    'model',
    'flag'
));
//grid
switch($flag) {
    ...
}