use*_*356 2 php symfony fosuserbundle
我正在使用FOSUserBundle.这两者有什么区别?
$this->get('fos_user.user_manager');
Run Code Online (Sandbox Code Playgroud)
...和...
$this->getUser();
Run Code Online (Sandbox Code Playgroud)
我发现我在不同的时间使用了上述两种方法,一切正常.
我猜第一个是来自FOS,第二个是默认的,但我猜我应该总是使用同一个.
这是我用过的一段代码:
$user = $this->getUser();
if($user) {
$email = $user->getEmail();
} else {
$email = "no email";
}
Run Code Online (Sandbox Code Playgroud)
..另一个......
$userManager = $this->get('fos_user.user_manager');
$user = $userManager->findUserBy(array('memberID' => '123'));
Run Code Online (Sandbox Code Playgroud)
...所以我应该为两者使用相同的方法吗?
随着$this->getUser()只是一个快捷方式到
$this->get('security.context')->getToken()->getUser()
Run Code Online (Sandbox Code Playgroud)
这意味着您可以根据当前安全令牌获取用户对象.当您想要检索实际登录用户时,它非常完美.
但是如果你想获得其他用户,那fos_user.user_manager就是选择,因为它有方法可以轻松找到用户并隐藏实现.它还提供了创建新用户和更新用户的方法.此外,如果您检索当前登录的用户$this->getUser()并对其进行修改,则应使用fos用户管理器更新它们.查看文档了解更多信息!
| 归档时间: |
|
| 查看次数: |
11386 次 |
| 最近记录: |