2011-12-29 14 views
0

私はYiiフレームワークの初心者です。私はYiiフォーラムでこの質問をしましたが、良い結果は得られなかったので、ここに来ました。実際には、管理者がログインするときに最後にログインした時間を表示したい。 Yiiユーザーモジュールで利用できます。そうする方法。その時間をユーザモジュールからインデックスページにすることは可能ですか?どのような助けや提案も非常に評価されます。Yii Frameworkの最終ログイン時間の取得

[更新]

私はthis linkに続いて、私は指示に従って、次のようにUseridentityコードを作った:

class UserIdentity extends CUserIdentity 
{ 
    private $_id; 

    public function authenticate() 
    { 
     $user=User::model()->findByAttributes(array('username'=>$this->username)); 
     if($user===null) 
      $this->errorCode=self::ERROR_USERNAME_INVALID; 
     else if($user->password!==md5($this->password)) 
      $this->errorCode=self::ERROR_PASSWORD_INVALID; 
     else 
     { 
      $this->_id=$user->id; 
      $this->setState('lastLoginTime', $user->lastLoginTime); 
      $this->errorCode=self::ERROR_NONE; 
     } 
     return !$this->errorCode; 
    } 

    public function getId() 
    { 
     return $this->_id; 
    } 
} 

は今、私はlastloginを得ることができるように、ビューファイルにidlastloginを呼び出す必要がありますこのコードをビューファイルに使用しました。

<?php echo Yii::app()->user->name;?> 
<?php echo Yii::app()->user->lastLoginTime;?> 

私はのようなエラーを得たすべての変更後:

Property "CWebUser.lastLoginTime" is not defined. 

答えて

3

あなたはこの試みることができる:

Yii::app()->user->last_login = $usermodel->last_login; 
$usermodel->last_login = time(); 

echo "welcome back - your last login was at:".Yii::app()->user->last_login; 
+0

ビューファイルで作成しましたが、このようなエラーが表示されました。構文解析エラー:予期しないT_VARIABLE。 – NewUser

0

をあなたのビューでユーザーがログインしているときにだけ書く必要

echo Yii :: app() - > user-> lastLoginTime;

試してみてください!

0

あなたがsetState()を使用している場合、あなたはそれを得るためにgetState()を使用する必要が直接

setState()を経由して割り当てられた変数にアクセスすることはできません。

UserIdentity

$this->setState('lastLoginTime', $user->lastLoginTime); 

ビュー

Yii::app()->user->getState('lastLoginTime'); 

などのプライベートプロパティを追加することも、$_idなどのプライベートプロパティを1つ追加して同じ方法で使用することもできます。

+0

これはナンセンスです。 'CWebUser'はセッションの内容もチェックされるように' __set() 'メソッドを上書きします。 – DaSourcerer

0

これは愚かなように聞こえるかもしれません。「あなたはそれをもう一度やり直してみましたか?」という精神の中にあるかもしれませんが、this commentごとにログアウトしてみましたか?私は変更があなたのセッションにまだ影響していないと思っています。だから、CWebUser.lastLoginTimeにはまだアクセスできません。 CWebUser.__get()の詳細も参照してください。

関連する問題