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


get Current request referer URL and parse it

我有一个用作交汇的视图(网格(。 此渲染部分网格用于两个操作。

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

我需要知道如何检查现在正在请求哪个操作? 我需要停止一些从 Yii 生成的脚本,并在操作为"默认/索引/"时添加一些脚本(我的意思是调用来自默认/索引/(这也可以通过这种方式调用......搜索/默认/索引/区域/操作?查询=

操作 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/

仅对于操作 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

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

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

编辑 2

也尝试过这种方式,回声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 甚至单独很好,即"搜索">

要获取操作 ID,请使用:

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

控制器类似:

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

对于模块使用:

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

您还可以使用:

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

对于 Yii 预处理的路径信息

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

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

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