Yii 中某个控制器的异常


Exception for a certain controller in Yii

我的Yii-应用程序中有很多控制器。 所有这些都只有在您登录后才能访问,否则您将被重定向到登录页面。但是我有一个控制器,有一些操作,每个人都应该可以访问。我如何配置 Yii 来实现这一点?

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

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

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

目前尚不清楚您要用该代码执行的操作。如果打算允许所有人访问所有操作,请完全删除accessControl筛选器和accessRules()实现。

更新:

好吧,如果你的基本Controller将访问控制规则附加到所有应用程序控制器,你只需要覆盖适当的方法即可恢复默认行为:

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

但是,如果Controller附加的过滤器不仅仅是accessControl,您将不得不以某种方式找到哪一个是accessControl行并仅删除该行。这并非微不足道,因为那里可以包含相当多的语法。

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