пользовательская панель навигации yii не позволяет войти в систему

Я пытаюсь добавить пользовательскую загрузочную панель навигации на свой сайт с помощью yii-booster. Но вместо того, чтобы использовать API yii-booster для создания панели навигации, я просто использовал базовый способ фреймворка начальной загрузки. который визуально работает нормально, но по какой-то причине каждый раз, когда я пытаюсь войти, я показываю, что я вошел в систему, но Yii::app()->user->name будет гость, и когда я обновляю сайт, он снова показывает вход.

<div style="height: auto;" class="navbar-wrapper">
      <div style="top: 0px;" class="navbar<?php if (!Globals::is_home_page()) echo ' navbar-fixed-top';?>" id="navigation">
            <div class="navbar-inner">
                <button type="button" class="btn btn-navbar collapsed" data-toggle="collapse" data-target=".nav-collapse">
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="brand" href="<?php echo Yii::app()->request->baseUrl; ?>">mysite.com</a>
                <div class="nav-collapse collapse">
                    <ul class="nav pull-right">
                        <li><a class="" href="<?php echo Yii::app()->request->baseUrl; ?>/#how">How It Works</a></li>
                        <?php
                        if (Yii::app()->user->isGuest)
                        {
                           echo '<li><a class="" href="'.Yii::app()->createUrl('/login').'">Login</a></li>';
                        }
                        else
                        {
                            echo '<li class="dropdown">
                                   <a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0);">Profile <b class="caret"></b></a>
                                    <ul class="dropdown-menu">
                                      <li><a href="'.Yii::app()->createUrl('user').'">Profile</a></li>
                                      <li><a href="'.Yii::app()->createUrl('/orders').'">Schedule</a></li>
                                      <li class="divider"></li>
                                      <li><a href="'.Yii::app()->user->logout().'">Logout ('.Yii::app()->user->isGuest.'   '.Yii::app()->user->id.'  '.Yii::app()->user->name.')</a></li>
                                    </ul>
                                  </li>';
                        }
                        ?>
                    </ul>
                </div>
            </div>
        </div>
    </div>

но когда я использую yii-booster ниже, он работает нормально... Я не совсем понимаю, почему мы должны использовать yii-booster. потому что bootsrtap API намного проще. Я новичок в этом, я что-то упускаю или не понимаю здесь? Заранее спасибо...

<div class="navbar navbar-inverse navbar-fixed-top">
    <div class="navbar-inner">
        <div class="container-fluid">
            <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </a>
            <a class="brand" href="#"><?php echo Yii::app()->name ?></a>
            <div class="nav-collapse">
                <?php $this->widget('zii.widgets.CMenu',array(
                    'htmlOptions' => array( 'class' => 'nav' ),
                    'activeCssClass'    => 'active',
                    'items'=>array(
                        array('label'=>'Contact', 'url'=>array('/site/contact')),
                        array('label'=>'Login', 'url'=>array('/site/login'), 'visible'=>Yii::app()->user->isGuest),
                        array('label'=>'Logout ('.Yii::app()->user->name.')', 'url'=>array('/site/logout'), 'visible'=>!Yii::app()->user->isGuest)
                    ),
                )); ?>

            </div>
        </div>
    </div>
</div>

person user2636556    schedule 10.12.2013    source источник


Ответы (1)


Yii::app()->user->name возвращает имя пользователя, вошедшего в систему.

Для тестирования пользователь является гостем

Вы должны использовать

Yii::app()->user->isGuest;

Это даст вам лучший результат

person Neeraj Kumar    schedule 10.12.2013
comment
я использую if (Yii::app()->user->isGuest) { } он выходит из системы после обновления - person user2636556; 10.12.2013
comment
попробуйте это, если ( ! Yii::app()-›user-›id ) { } - person Neeraj Kumar; 10.12.2013