我是yii的新手,这是我的问题:
- 如何设置会话以检测用户是否未登录
- 用户登录后显示和隐藏div
- 尚未登录隐藏分区
菜单栏/导航栏:
<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
}
- 如何设置会话以检测用户是否未登录
无需会话。
<?php if(Yii::app()->user->isGuest): ?>
<?php echo 'Hi Guest'; ?>
<?php endif; ?>
用户登录后显示和隐藏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 } ?>