用户访问级别错误403虽然由管理员访问

时间:2014-03-10 06:52:24

标签: yii

我想创建一个用户访问级别,但我有问题,admin(其id_level = 1)仍然无法访问指定的页面。 我在这里有EWebUser.php

<?php
class EWebUser extends CWebUser{

protected $_model;

protected function loadUser()
{
    if ( $this->_model === null ) {
            $this->_model = User::model()->findByPk($this->id);
    }
    return $this->_model;
}

function getLevel()
{
    $user=$this->loadUser();
    if($user)
        return $user->id_level;
    return 100;
}
}
?>

然后是UserController.php中的accessRules方法

public function accessRules()
{
    return array(
        .......
        array('allow', // allow admin user to perform 'admin' and 'delete' actions
            'actions'=>array('index','admin','delete'),
            //'users'=>array('admin'),
            'expression'=>'$user->getLevel()<=1',
        ),
        .......
    );
}

我无法访问localhost / myappname / user.php,它会抛出错误403,尽管我以Admin(id_level = 1)身份登录。 我发现了$this->_model = User::model()->findByPk($this->id);,我做了更改$this->id_user,因为在我的模型中,主键是id_user而不是id但是它会引发另一个错误:属性“EWebUser.id_user”不是定义。有人可以帮我解决这个问题吗?提前谢谢..

1 个答案:

答案 0 :(得分:0)

[求助]我自己在UserIdentity.php中将$this->_id = $user->username;更改为$this->_id = $user->id_user;$this->_model = User::model()->findByPk($this->id);上没有错误的代码,因为实际问题出在UserIdentity