2016-08-17 4 views
-1

저는 Yii 프레임 워크를 처음 접했고 사용자 ID, 사용자 이름 & 등의 현재 로그인 한 사용자의 세부 정보를 얻고 자하며 해당 데이터를 헤드 태그에 추가하려고합니다. 나는 Yii에서 기본 버전을 사용하고 있습니다.Yii 프레임 워크에서 사용자 세부 정보 얻기

이 세부 정보는 어떻게 얻을 수 있습니까?

+0

당신이 설정 한 세션이 링크를 참조하여 YII에서 세션 값을 얻을 수 있습니다 로그 아웃합니다. 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; 
} 

에서

지금 어디 YII가 IdentityInterface를 사용하여 세션에 사용자 데이터를 처리

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

잘못된 것입니다. 언제든지'\ Yii :: $ app-> user-> identity'에 접근하여 실제 사용자 모델을 얻을 수 있습니다. – Twisted1919

+0

나는 Yii 1.1을 사용 중이며 잘 작동한다. – user1234

+0

OP는 '나는 Yii에서 기본 버전을 사용 중입니다.'라는 말은 그가 yii2가 아닌 1을 사용하고 있다는 것을 의미합니다. – Twisted1919

0

처럼이 얻을. 단계별로 나가자.

IdentityInterface를 구현하는 User라는 클래스를 만들 수 있습니다. 데이터베이스와 연결되어 있으면 ActiveRecord로 확장 할 수 있습니다.

class User extends ActiveRecord implements IdentityInterface 
{ 
    ... 
} 

구성 파일 인 main.php에 구성 세부 정보를 추가하십시오. 나는 사전 템플릿에 대해 작업하기 때문에 fronted/config에 위치합니다. 기본적인 것을 확인하십시오.

'components' => [ 
    ... 

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

    .... 
]; 

이렇게하면 응용 프로그램에 common \ model \ User 클래스의 사용자 세션 세부 정보가 표시됩니다. 공통점은 내가 백엔드와 프론트 엔드에 동일한 클래스를 사용했기 때문에 기본 템플릿에서는 그렇지 않습니다. 유효한 사용자 이름과 암호를 사용하여 응용 프로그램

당신이 사용자 클래스의 객체를 얻을에

만들기 사용자 로그인, 사용자 로그인하려면 다음 코드를 사용합니다.

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

당신이

샘플

다음 한 사용자의 값을 얻으려면 YII : $ APP-> 사용자 -> isGuest - 이것은 사용자 로그인 여부를 알려줍니다.

YII : $ APP-> 사용자 -> 아이디-Yii::$app->user->identity 줄 것이다 액세스 권한 - 사용자

YII : $ APP-> 사용자 -> 아이덴티티> 이름의 ID를 가져옵니다 User 클래스의 전체 객체에 적용됩니다. 다른 속성이 있으면 ID를 사용하여 해당 속성을 가져옵니다. 예를 들어 아바타 URL을 저장하는 '아바타'를 가질 수 있으며 Yii::$app->user->identity->avatar까지 가져올 수 있습니다.

마지막

Yii::$app->user->logout(); 
관련 문제