0

我有一个可以在我所有的控制器上运行的过滤器。preFilter我有:

protected function preFilter($filterChain){
        Yii::app()->params->controller = Yii::app()->controller->id;
        Yii::app()->params->action = Yii::app()->controller->action->id;
        return true;
    }

postFilter我有:

protected function postFilter($filterChain){
    $this->controllerName = Yii::app()->params->controller ;
    $this->actionName = Yii::app()->params->action;
    $this->CheckTrigger();
    return true;
}

该函数CheckTrigger()Yii::app()->params->controllerYii::app()->params->controller

所以这就是问题所在。如果我的操作中有重定向,这会刹车。如果我注释掉我的重定向,它会再次开始工作。似乎在调用重定向时,还会调用 Pre 和 Post 过滤器操作,但在启动重定向之前从未调用过 Post 过滤器。有没有办法确保在重定向之前调用 post 过滤器?我在这里错过了什么吗?

非常感谢..

4

1 回答 1

1

在您的控制器操作中尝试此重定向代码:

$this->redirect('url here', false);
于 2012-11-09T16:21:18.967 回答