从PHP对象中获取信息

时间:2013-03-19 20:02:18

标签: php yii

我正试图通过继承的Yii框架网站。以前很少有面向对象的知识。

我正在打印一些用户信息以查看这样的内容......

print_r(Yii::app()->user);

这就是打印出来......

CWebUser Object (
[allowAutoLogin] => 1
[guestName] => Guest
[loginUrl] => Array
    (
        [0] => /site/login
    )

[identityCookie] => 
[authTimeout] => 7200
[autoRenewCookie] => 
[autoUpdateFlash] => 1
[loginRequiredAjaxResponse] => 
[_keyPrefix:CWebUser:private] => 7c6285462394c9a141b5d66dce54e8f2
[_access:CWebUser:private] => Array
    (
        [Admin] => 
        [Judge] => 
        [Student] => 1
    )

[behaviors] => Array
    (
    )

[_initialized:CApplicationComponent:private] => 1
[_e:CComponent:private] => 
[_m:CComponent:private] => 
)

我正在尝试获取该用户是学生的信息。我看到了!它就在那里!

[Student] => 1

但我怎样才能获得这些信息?

更新

这里是CWebUser的部分,似乎与_access

有关
private $_access=array();


    public function checkAccess($operation,$params=array(),$allowCaching=true)
{
    if($allowCaching && $params===array() && isset($this->_access[$operation]))
        return $this->_access[$operation];

    $access=Yii::app()->getAuthManager()->checkAccess($operation,$this->getId(),$params);
    if($allowCaching && $params===array())
        $this->_access[$operation]=$access;

    return $access;
}

2 个答案:

答案 0 :(得分:3)

以下内容应告诉您用户是否具有“学生”访问权限:

$isStudent = Yii::app()->user->checkAccess('Student') == 1;

答案 1 :(得分:1)

'student'是$ _access数组的一部分。但$ _access是私有的,因此您无法直接访问它。

但必须有一个方法(功能)来获得它! 看看CWebUser类,应该有一个像

这样的方法
getStudent();

isStudent();

或可能是

$access = getAccess();
$access['student'];

编辑: checkAccess 好像是用checkAccess('student');

这样的