2

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

<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 从两个动作中返回。

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

所以我可以很容易地跟踪天气它的动作 1 或动作 2

编辑 2

也试过这种方式,回声Yii::app()->user->returnUrl;

但它只打印 - /ijob-css/index.php

编辑 3

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

但我只需要 "search/default/index/area/act?query=" 实际上模型 id 甚至可以单独使用 "search"

4

2 回答 2

3

要获取操作 ID,请使用:

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

控制器类似:

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

对于模块使用:

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

您还可以使用:

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

对于 Yii 预处理路径信息

于 2013-10-03T06:55:01.010 回答
2
$route = Yii::app()->getUrlManager()->parseUrl(Yii::app()->getRequest());
echo $route;

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

$this->renderPartial('grid', compact(
    'model',
    'flag'
));
//grid
switch($flag) {
    ...
}
于 2013-10-03T08:40:39.537 回答