yii-user extension include(WebUser.php)没有这样的文件或目录

时间:2012-11-23 11:20:45

标签: yii yii-extensions

我正在尝试按照此官方教程

安装yii-user的扩展程序

http://www.yiiframework.com/extension/yii-user/#hh2

但我遇到了一些问题,特别是当我添加这个

 user'=>array(
        // enable cookie-based authentication
        'class' => 'WebUser',
        'allowAutoLogin'=>true,
        'loginUrl' => array('/user/login'),

到配置主页。当我添加此代码时,我有此消息错误

include(WebUser.php)[function.include]:无法打开流:没有这样的文件或目录

有任何线索吗?我以前需要做点什么吗?

提前致谢

3 个答案:

答案 0 :(得分:5)

我搜索了一下,我找到了解决方案。但它不在文档中。

因此,我们应该在 protected / components 中创建 WebUser.php ,如下所示:

  <?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;
}
}?>

并且应该可以工作。

答案 1 :(得分:2)

您是否按照http://www.yiiframework.com/extension/yii-user/#hh2上的说明进行操作?

您可能忘记在config.php

中指定用户模块的导入路径
'import'=>array(
    ...
    'application.modules.user.models.*',
    'application.modules.user.components.*',
),

答案 2 :(得分:0)

我遇到了同样的问题,发现这是许可问题。 Apache用户(在我的情况下是www-data)无法访问protected / modules / users / *文件。