Yii框架未检查accessRules中的角色

Yii框架未检查accessRules中的角色,yii,setstate,Yii,Setstate,我在Yii框架中创建了一些管理面板,我在登录时设置了如下状态 public function authenticate() { $record=AdminTbl::model()->findByAttributes(array('usr'=>$this->username)); if($record===null) $this->errorCode=self::ERROR_USERNAME_INVALID; else if($re

我在Yii框架中创建了一些管理面板,我在登录时设置了如下状态

public function authenticate()
{

    $record=AdminTbl::model()->findByAttributes(array('usr'=>$this->username));
    if($record===null)
        $this->errorCode=self::ERROR_USERNAME_INVALID;
    else if($record->pwd!==$this->password)
        $this->errorCode=self::ERROR_PASSWORD_INVALID;
    else
    {
        $this->_id=$record->id;
        $this->setState('roles','main');
        $this->errorCode=self::ERROR_NONE;
    }
    return !$this->errorCode;
}
我检查了状态是否真的设置好了,并在视图中进行了回应。后来,我将该角色放在accessrules()中

我无法访问此用户登录的页面。有什么问题吗?

看看这里


您需要创建主角色并通过用户id分配它。

如果您需要简单的基于角色的访问控制,而不需要长时间的RBAC过程,那么本文只适合您


在文档中未对此进行解释。
public function accessRules()
{
    return array(
        array('allow',  // allow all users to perform 'index' and 'view' actions
            'actions'=>array('index','view','create','update','admin','delete'),
            'roles'=>array('main'),
        ),
        array('deny',  // deny all users
            'users'=>array('*'),
        ),
    );
}