2012-02-07 14 views
0

私のアプリケーションでは、ユーザーモジュールでログインしたときと同じように、ユーザーがログインしたときと同じように彼/彼女の最後のログイン時刻を見ることができます。 。 プロパティ「CWebUser.lastLoginTime」に定義されていません。だから私はそれは、ログイン後にユーザ名を示しているが、私は最後のログイン時間をチェックしたいとき、のようなエラーが表示され、この最終ログイン時間の取得

<?php 

/** 
* UserIdentity represents the data needed to identity a user. 
* It contains the authentication method that checks if the provided 
* data can identity the user. 
*/ 
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; 
    $id=Yii::app()->user->id; 
    $lastLoginTime=Yii::app()->user->lastLoginTime; 
    } 
} 

And to show the last login time and user name I changed my view >> column2.php file like this 

<?php $this->beginContent('//layouts/main'); ?> 
<div class="container"> 
    <div class="span-19"> 
    <div id="content"> 
     <?php echo $content; ?> 
    </div><!-- content --> 
    </div> 
    <div class="span-5 last"> 
    <div id="sidebar"> 
     <?php if(Yii::app()->user->id):?> 
     <span class="admin-message">Hello,&nbsp; <span><?php echo yii::app()->user->name;?>&nbsp;</span></span> 
     <?php echo Yii::app()->user->lastLoginTime;?> 
    <?php endif;?> 
    <?php 
     $this->beginWidget('zii.widgets.CPortlet', array(
     'title'=>'Operations', 
    )); 
     $this->widget('zii.widgets.CMenu', array(
     'items'=>$this->menu, 
     'htmlOptions'=>array('class'=>'operations'), 
    )); 
     $this->endWidget(); 
    ?> 

    <?php 
     if(Yii::app()->getModule('user')->isAdmin()): 
     $this->beginWidget('zii.widgets.CPortlet',array(
     'title' => 'Admin Operations', 
     )); 
     $this->widget('zii.widgets.CMenu', array(
     'items'=>array(
      array("label"=> "Create User", "url"=>array('/user/admin/create')), 
      array("label"=> "List User", "url"=> array('/user')), 
      array("label"=>"Manage Profile","url"=>array('/user/profile')), 
      array("label"=>"Manage Profile Fields","url"=>array('/user/profileField/admin')), 
     ), 
     'htmlOptions'=>array('class'=>'operations'), 
    )); 
     $this->endWidget(); ?> 
    <? endif; 
    ?> 
    </div><!-- sidebar --> 
    </div> 
</div> 
<?php $this->endContent(); ?> 

ように私のUserIdentityコードを作りました。どのようにこれを行うに私を導くことができますか?働いていない理由を

答えて

1

使用

<?php echo Yii::app()->user->getState('lastLoginTime');?> 
+0

私はそれを使用しています。全く動作しません。 – Jagdish

0

は知ってはいけません。 セッションを利用できないとうまくいくと思います。

Yii::app()->session['lastLoginTime'] = $user->lastLoginTime; 
echo Yii::app()->session['lastLoginTime']; 
関連する問題