チーム アプリケーションへのログイン中にスタックしました。ここにコードがあります.. 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
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;
}
}
および StaffDb.php (私のモデルの 1 つ)
public static function model($className=__CLASS__)
{
return parent::model($className);
}
public function tableName()
{
return 'staffdb';
}
public function rules()
{
return array(
array('oldStaffCode', 'required'),
... array('kdstpeg', 'max'=>2),
array('...', 'safe'),
array('oldStaffCode, kdstpeg, ...', 'safe', 'on'=>'search'),
);
}
public function primaryKey()
{
return 'oldStaffCode';
}
このアプリケーションにアクセスしようとすると、「オブジェクト以外のプロパティを取得しようとしています」というエラーが表示されます。次に、このコードを EWebUser.phpprint_r ($user);
に配置して、$user のビューの種類を確認します。しかし、それは何の効果もありませんでした。:( 私の質問は、そのコードで何かを見逃していましたか?私の意見では、すべてのオブジェクトが完成しているためです。この問題を解決するための提案があることを願っています。よろしくお願いします。:D