Расширение yii-user включает (WebUser.php) Нет такого файла или каталога


person unpix    schedule 23.11.2012    source источник


Ответы (3)


Я немного поискал и нашел решение. Но в документации этого не было.

Итак, мы должны создать WebUser.php в protected/components следующим образом:

  <?php

// this file must be stored in:
// protected/components/WebUser.php

class WebUser extends CWebUser {

// Store model to not repeat query.
 private $UserLogin;

// Return first name.
// access it by Yii::app()->user->first_name
function getFirst_Name(){
$user = $this->loadUserLogin(Yii::app()->user->user_id);
return $user->first_name;
}  

// This is a function that checks the field 'role'
// in the User model to be equal to 1, that means it's admin
// access it by Yii::app()->user->isAdmin()
function isAdmin(){
$user = $this->loadUser(Yii::app()->user->user_id);
return intval($user->user_role_id) == 1;
}

// Load user model.
protected function loadUserLogin($id=null)
{
    if($this->UserLogin===null)
    {
        if($id!==null)
            $this->UserLogin=UserLogin::model()->findByPk($id);
    }
    return $this->UserLogin;
}
}?>

и должно работать.

person unpix    schedule 23.11.2012
comment
Если вы пытаетесь установить расширение yii-user, вам не следует создавать собственный класс WebUser. Он уже включен в расширение в разделе user/components. - person jborch; 24.11.2012
comment
В .rar, который я скачал, его нет. Но спасибо за информацию. - person unpix; 24.11.2012

Следовали ли вы инструкциям на http://www.yiiframework.com/extension/yii-user/#hh2?

Вы наверное забыли указать пути импорта к пользовательскому модулю в config.php

'import'=>array(
    ...
    'application.modules.user.models.*',
    'application.modules.user.components.*',
),
person jborch    schedule 23.11.2012

У меня была такая же проблема, и я обнаружил, что это проблема с разрешением. Пользователь Apache (www-data в моем случае) не мог получить доступ к файлам protected/modules/users/*.

person mtoloo    schedule 15.11.2013