我在Yii中使用setState但我也得到了属性“CWebUser.depId”没有定义

时间:2013-12-18 16:18:56

标签: yii setstate

我想从表用户返回值dep_id以使用它,因此setState应该返回它(Yii :: app() - > user-> depId)但是当我使用它时我得到 - “ “CWebUser.depId”未定义。我搜索过,我不知道该怎么做,我需要快速回答这是我的 例如:

private $_id;
//private $_dep_id;
public function authenticate()
{
    $user=User::model()->find('LOWER(username)=?',array(strtolower($this->username)));
    if($user===null)
        $this->errorCode=self::ERROR_USERNAME_INVALID;
    else if(!$user->validatePassword($this->password))
        $this->errorCode=self::ERROR_PASSWORD_INVALID;
    else
    {
        $this->_id=$user->id;
        $this->setState('depId',$user->dep_id);            
        $this->username=$user->username;
        $this->setState('lastLogin', date("m/d/y g:i A", strtotime($user->last_login_time)));
        $user->saveAttributes(array('last_login_time'=>date("Y-m-d H:i:s", time())));
        $this->errorCode=self::ERROR_NONE;
    }
    return $this->errorCode==self::ERROR_NONE;
}
public function getId()
{
    return $this->_id;
}

然后我得到了这个

Property "CWebUser.depId" is not defined.

这里有什么问题?!

1 个答案:

答案 0 :(得分:0)

您必须是经过身份验证的用户才能在上述方案中使用该变量,因为它仅限于经过身份验证的用户。