Getting The Right Object Name In Ewebuser

Hi, everyone. I want to ask about an error in login action. Let say that i have an application. Those are my code…

EWebUser.php


<?php

class EWebUser extends CWebUser{


    protected $_model;

 

   protected function loadUser()

    {

        if ( $this->_model === null ) {

                $this->_model = StaffDb::model()->findByPk($this->id);

        }

        return $this->_model;

    }


    function getLevel()

    {

        $user=$this->loadUser();

        if ($user->kdstpeg == 02){

        if(substr($user->kdorg,1,4) == '0000') $level=1;

        else if (substr($user->kdorg,2,3) == '000') $level=2;


            return $level;

        }

        return 100;

    }

UserIdentity.php


<?php


/**

 * UserIdentity represents the data needed to identity a user.

 * It contains the authentication method that checks if the provided

 * data can identity the user.

 */

class UserIdentity extends CUserIdentity

{

    private $_id;

	

	public function authenticate()

	{

			$username = strtolower($this->username);

			$user = MUser::model()->find('LOWER(username)=?', array($username));

                if($user===null)

			$this->errorCode=self::ERROR_USERNAME_INVALID;

			else if ($user->pwd!=$this->password)

			$this->errorCode = self::ERROR_PASSWORD_INVALID;

                else

                {

					$this->_id = $user->oldStaffCode;

					$this->username = $user->username;

					$this->errorCode = self::ERROR_NONE;

                }

        return $this->errorCode == self::ERROR_NONE;

	}


	 public function getId()

	{

		return $this->_id;

        }

}

and StaffDb.php (one of my model)


public static function model($className=__CLASS__)

	{

		return parent::model($className);

	}


	/**

	 * @return string the associated database table name

	 */

	public function tableName()

	{

		return 'staffdb';

	}


	/**

	 * @return array validation rules for model attributes.

	 */

	public function rules()

	{

		// NOTE: you should only define rules for those attributes that

		// will receive user inputs.

		return array(

			array('oldStaffCode', 'required'),

			... array('kdstpeg', 'max'=>2),

			

			array('...', 'safe'),

			// The following rule is used by search().

			// Please remove those attributes that should not be searched.

			array('oldStaffCode, kdstpeg, ..., 'safe', 'on'=>'search'),

		);

	}




        public function primaryKey()

        {

          return 'oldStaffCode';

        }



When i’m trying to access this application, the error “Trying to get property of non-object” is shown. Then, i put this code on EWebUser.php


print_r ($user);

in order to see what kind of $user’s view. But it didn’t have any effect. :(

My question is, did I miss something in that codes? Because in my opinion, all of objects are complete. I hope there’s a suggestion to solve this problem. Thanks in advance. :D