显示当前登录用户

Man*_*anu 1 php symfony1 sfdoctrineguard

我正在使用Symfony和sfDoctrineGuardPlugin.

如何在模板中显示当前用户的用户名?

我已经尝试了$ this-> getUser() - > getUsername(),但我得到的只是错误:"调用未定义的方法sfPHPView :: getUser."

我正在尝试在layout.php中显示用户名,而不是在特定的模块/模板中

ric*_*age 8

在模板(视图)中,使用$sf_user:

对于用户名:

echo $sf_user->getUsername();
Run Code Online (Sandbox Code Playgroud)

对于id:

echo $sf_user->getAttribute('user_id', null, 'sfGuardSecurityUser');
Run Code Online (Sandbox Code Playgroud)

或者,在动作(控制器)中,您可以执行您在问题中所做的事情:

$this->username = $this->getUser()->getUsername();
Run Code Online (Sandbox Code Playgroud)

然后$username将在您的视图模板中提供.

有关其他视图变量快捷方式,请参阅Symfony文档中的模板快捷方式.

  • 这是因为getUsername()实际上调用了getGuardUser() - > getUsername().因为你没有登录GuardUser不存在.首先使用$ sf_user-> isAuthenticated()进行检查. (3认同)