Symfony1 Symfony 1.4 ghost用户-当前用户更改为不同的用户
我有以下代码来显示我的应用程序中当前登录的用户。奇怪的是,当用户从一个页面浏览到另一个页面时,偶尔会出现间歇性的情况,登录用户的用户名会更改为数据库中的另一个用户。注销和重新登录,然后显示当前用户名Symfony1 Symfony 1.4 ghost用户-当前用户更改为不同的用户,symfony1,symfony-1.4,sfguard,Symfony1,Symfony 1.4,Sfguard,我有以下代码来显示我的应用程序中当前登录的用户。奇怪的是,当用户从一个页面浏览到另一个页面时,偶尔会出现间歇性的情况,登录用户的用户名会更改为数据库中的另一个用户。注销和重新登录,然后显示当前用户名 <? if ($sf_user->isAuthenticated()){?> <div id="welcome"> You are signed in as <strong><?php echo sfContext::getInstance
<? if ($sf_user->isAuthenticated()){?>
<div id="welcome">
You are signed in as <strong><?php echo sfContext::getInstance()->getUser()->
getGuardUser()->getName()?></strong> <a href="/logout" class="button">Logout</a>
</div>
<div class="clear"></div>
<? } ?>
您以
知道是什么引起的吗
我可以确认两个用户是在同一天登录的,但登录位置不同。在视图中使用
$sf\u user
比如:
您以
感谢您的回复,使用$sf_user是否会阻止问题的发生,如果是,原因是什么?sfContext是整个应用程序对象,sfUser(视图中的$sf_用户)将被引用到当前用户会话。@Wilq必须阅读:如果这个答案解决了您的问题,别忘了。使用$sf_user
是最佳做法,但为什么要解决问题?查看sfContext
类,您可以看到filterTemplateParameters
函数从$this->factories['user']
获取$sf\u user
参数,与getUser
函数完全相同。
<? if ($sf_user->isAuthenticated()){?>
<div id="welcome">
You are signed in as <strong><?php echo $sf_user->getName()?></strong> <a href="/logout" class="button">Logout</a>
</div>
<div class="clear"></div>
<? } ?>