我的顶部导航栏中有一个小型登录表单,输入字段为EMAIL,PASSWORD和登录按钮(见下图)。
如何根据用户的登录状态更换它?如果用户已登录,则应在其可以注销等的位置显示下拉列表(参见图2)
我使用ZF2,zfc-user和Twitter Bootstrap 3.
我的登录小部件的导航栏代码:
`
$form = $this->zfcUserLoginWidget(array('render' => false))->getVariable('loginForm');
$form->setAttribute('action', $this->url('zfcuser/login'));
$form->setAttribute('method', 'post');
$form->setAttribute('class', 'navbar-form navbar-right form-inline');
echo $this->form()->openTag($form);
echo $this->formElementErrors($form->get('identity')) ?>
<div class="form-group">
<?php echo $this->formInput($form->get('identity')) ?>
<?php echo $this->formInput($form->get('credential')) ?>
<?php if ($this->redirect): ?>
<input type="hidden" name="redirect" value="<?php echo $this->escapeHtml($this->redirect) ?>"/>
<?php endif ?>
<?php echo $this->formButton($form->get('submit')); ?>
</div>
<?php
echo $this->form()->closeTag();
?>
`
登录后应该变成什么:
答案 0 :(得分:1)
好的,解决方案来自我的同时:
<!-- Test if the User is connected -->
<?php if(!$this->zfcUserIdentity()): ?>
<!-- display the login form -->
<?php echo $this->zfcUserLoginWidget(array('redirect'=>'application')); ?>
<?php else: ?>
<!-- display the 'display name' of the user -->
<?php echo $this->zfcUserIdentity()->getDisplayname(); ?>
<?php endif?>
我只是将我的代码复制粘贴到各个部分,然后就可以了。