1

この公式チュートリアルに従って、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]: ストリームを開けませんでした: そのようなファイルやディレクトリはありません

どんな手掛かり?私は前に何かをする必要がありますか?

前もって感謝します

4

3 に答える 3

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

動作するはずです。

于 2012-11-23T15:27:08.713 に答える
2

http://www.yiiframework.com/extension/yii-user/#hh2の指示に従いましたか?

でユーザー モジュールへのインポート パスを指定するのを忘れた可能性があります。config.php

'import'=>array(
    ...
    'application.modules.user.models.*',
    'application.modules.user.components.*',
),
于 2012-11-23T12:33:17.577 に答える
0

私は同じ問題を抱えていて、それが許可の問題であることがわかりました。Apache ユーザー (私の場合は www-data) は、protected/modules/users/* ファイルにアクセスできませんでした。

于 2013-11-15T17:16:08.130 に答える