我有一个用作渲染空间的视图(网格)。这个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甚至很好,这就是“搜索”
答案 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) {
...
}