Yii验证(如果不是用户),并在登录后更改菜单


Yii Authentication if not user and change menu after log in

我是yii的新手,这是我的问题:

  1. 如何设置会话以检测用户是否未登录
  2. 用户登录后显示和隐藏div
  3. 尚未登录隐藏分区

菜单栏/导航栏:

     <div class="rightPane">
 <div class="menuWrapper">
    <div class="menuItem">
        <a href="#"><?php echo Yii::t('labels', 'HOME'); ?></a>
    </div>                        
</div>
<div class="menuWrapper">
    <div class="menuItem">
        <a ><?php echo Yii::t('labels', 'CONTACT'); ?></a>
    </div>                        
</div>
<div class="menuWrapper">
    <div class="menuItem">
        <a href="#modal" ><?php echo Yii::t('labels', 'SIGNIN'); ?></a>
</div>                  
</div>
<div class="menuWrapper">
    <div class="menuItem">
        <a href="<?php echo Yii::app()->baseUrl ?>/register"><?php echo Yii::t('labels', 'REGISTER'); ?></a>
    </div>                        
</div>
 <div class="menuWrapper">
      <div class="menuItem">
          <a href="#" ><?php echo Yii::t('labels', 'signout'); ?></a>
      </div>                        
 </div>

在这里,我希望登录后"登录"answers"注册"应该被隐藏,然后为"注销"显示一个新的div

从控制器登录代码:

$username = $_POST['username'];
$userpass = $_POST['userpass']; 

$record=Games::model()->findByAttributes(array('email'=>$username));
if($record===null){
    //somethings
}else if($this->checkPassword($record->password,$userpass)){
    //somethings
}else
{
    $this->_id=$record->id;
    $this->_email=$record->email;
    Yii::app()->user->setState('id', $record->id);
    Yii::app()->user->setState('email', $record->email);
    //go to somethings
}
  1. 如何设置会话以检测用户是否未登录

无需会话。

    <?php if(Yii::app()->user->isGuest): ?>
       <?php echo 'Hi Guest'; ?>
    <?php endif; ?>
  1. 用户登录后显示和隐藏div;3.尚未登录隐藏分区

    <?php if(!Yii::app()->user->isGuest): ?>
        <div class="menuWrapper">
          <div class="menuItem">
             <a ><?php echo Yii::t('labels', 'CONTACT'); ?></a>
          </div>                        
        </div>
    <?php else: ?>
    <div class="menuWrapper">
        <div class="menuItem">
            <a href="#modal" ><?php echo Yii::t('labels', 'SIGNIN'); ?></a>
        </div>                  
    </div>
    <div class="menuWrapper">
        <div class="menuItem">
            <a href="<?php echo Yii::app()->baseUrl ?>/register">
            <?php echo Yii::t('labels', 'REGISTER'); ?></a>
        </div>                        
    </div>
    <?php endif; ?>
    

我找到了第2点的答案:使用user->id(我没有使用原始提供的登录控制器的原因)

      <?php if(!Yii::app()->user->id){ ?>
    <div class="menuWrapper">
        <div class="menuItem">
            <a href="#modal" ><?php echo Yii::t('labels', 'SIGNIN'); ?></a>
    </div>                  
    </div>
    <div class="menuWrapper">
        <div class="menuItem">
            <a href="<?php echo Yii::app()->baseUrl ?>/register"><?php echo Yii::t('labels', 'REGISTER'); ?></a>
        </div>                        
    </div>
    <?php }else{ ?>
     <div class="menuWrapper">
        <div class="menuItem">
            <a href="#" ><?php echo Yii::t('labels', 'signout'); ?></a>
        </div>                        
    </div>
 <?php } ?>