2016-08-17 21 views
-1

私はYiiフレームワークが新しく、ユーザーID、ユーザー名&などの現在ログインしているユーザーのユーザーの詳細を取得し、そのデータをヘッドタグに追加したいと考えています。私はYiiで基本版を使用しています。Yiiフレームワークでユーザーの詳細を取得

この詳細情報はどのように入手できますか?

+0

をログアウトする

。 http://stackoverflow.com/questions/14197462/set-session-in-yii-framework/14197600 –

答えて

-1

こんにちはsetStateメソッドを使用してください。あなたのUserIdentity.php

public function authenticate() 
{ 
    $user=User::model()->find('LOWER(username)=?',array(strtolower($this->username))); 
    if($user===null) 
     $this->errorCode=self::ERROR_USERNAME_INVALID; 
    else if(!$user->validatePassword($this->password)) 
     $this->errorCode=self::ERROR_PASSWORD_INVALID; 
    else 
    { 
     $this->_id=$user->id; 
     $this->username=$user->username; 
     $this->setState("userid",$user->user_id);// set States like this 
     $this->setState("username",$user->username); 
     $this->setState("avatar",$user->avatar); 
     $this->errorCode=self::ERROR_NONE; 
    } 
    return $this->errorCode; 
} 

は今どこでも

$userid = Yii::app()->user->getState('userid'); 
+0

これは間違っています。あなたはいつでも '\ Yii :: $ app-> user-> identity'にアクセスして、実際のユーザモデルを得ることができます。 – Twisted1919

+0

私はYii 1.1を使用しています。 – user1234

+0

OPは「私はYiiで基本バージョンを使用しています」と言っています。つまり、yii2ではなく1を使用しています。 – Twisted1919

0

のYiiはIdentityInterfaceを使用してセッション内のユーザデータを扱うようにこれらを取得します。 ステップバイステップで行きましょう。

IdentityInterfaceを実装するUserという名前のクラスを作成できます。データベースに接続した場合は、ActiveRecordに拡張することができます。

class User extends ActiveRecord implements IdentityInterface 
{ 
    ... 
} 

設定ファイルmain.phpに設定の詳細を追加します。私は先進的なテンプレートで作業しています。それを確認してください。

'components' => [ 
    ... 

    'user' => [ 
     'identityClass' => 'common\models\User', 
     'enableAutoLogin' => true, 
     'identityCookie' => ['name' => '_identity-frontend', 'httpOnly' => true], 
    ], 

    .... 
]; 

これは、アプリケーションにcommon \ model \ Userクラスのユーザーセッションの詳細を取得するように指示します。一般的には、バックエンドとフロントエンドに同じクラスを使用していますが、これは基本テンプレートには当てはまりません。

あなたはUserクラスのオブジェクトを取得する場合、有効なユーザー名とパスワードを使用して、アプリに

をユーザーログインを作成し、ユーザーにログインするには、次のコードを使用します。

Yii::$app->user->login($user); 

あなたがサンプルに

のYii :: $ APP-> USER-> isGuestを以下しているユーザーの値を取得するには - これは、ユーザーがログインしているかどうかを示します。

のYii :: $ APP-> USER-> IDからYii::$app->user->identity与えるあなたのアクセス - ユーザー

のYii :: $ APP-> USER-> identity->名前のIDを取得します。 Userクラスのオブジェクト全体に渡します。他の属性がある場合は、IDを使用して取得します。たとえば、アバターURLを格納している「アバター」を持つことができます。Yii::$app->user->identity->avatarで取得できます。最後に、あなたが設定したセッションのために、このリンクを参照し、YIIでセッション値を取得することができます

Yii::$app->user->logout(); 
関連する問題