Yii中某个控制器的例外情况

时间:2012-06-26 13:27:00

标签: php yii

我的yii-application中有很多控制器。如果您已登录,则所有这些都只能访问,否则您将重定向到登录页面。 但我有一个控制器,有一些应该可以访问每个人的行动。如何配置Yii以实现这一目标?

我在控制器的accessRules()函数中尝试了很多,但没有任何效果。

  public function accessRules() {
    return array(
        array('allow', 'users' => array('*'))
    );
  }

我希望不会被重定向到登录页面。

1 个答案:

答案 0 :(得分:0)

目前尚不清楚您尝试使用该代码做什么。如果您打算允许所有人访问所有操作,请完全删除accessControl过滤器和accessRules()实施。

<强>更新

好吧,如果您的基地Controller将访问控制规则附加到所有应用程序控制器,您只需覆盖相应的方法即可恢复default behavior

public function filters()
{
    return array();
}

public function accessRules()
{
    return array();
}

但是,如果Controller附加了比accessControl更多的过滤器,则必须以某种方式找到哪一个是accessControl行,并仅删除它。这不是微不足道的,因为有很多语法可以进入那里。

最后,Controller不应该这样做。如果您想在许多(但不是所有)前线控制器之间共享行为,那么您应该创建另一个类,例如ControllerWithAccessControl并从中选择性地