我正在开发一个使用Symfony2和原则2的应用程序。我想知道如何获取当前登录的用户ID。Symfony2获取登录用户的ID
42
A
回答
112
当前的Symfony版本(Symfony的4,Symfony的> = 3.2)
Since Symfony >=3.2你可以简单地指望UserInterface
实现直接注射到你的控制器动作。然后,您可以拨打getId()
检索用户的标识:
class DefaultController extends Controller
{
// when the user is mandatory (e.g. behind a firewall)
public function fooAction(UserInterface $user)
{
$userId = $user->getId();
}
// when the user is optional (e.g. can be anonymous)
public function barAction(UserInterface $user = null)
{
$userId = null !== $user ? $user->getId() : null;
}
}
,您仍然可以使用安全令牌存储在所有Symfony的版本,因为2.6。例如,在你的控制器:
$user = $this->get('security.token_storage')->getToken()->getUser();
注意在这个答案的下一部分中提到的Controller::getUser()
快捷方式的Symfony 3已被弃用,在Symfony的取出4.0
传统Symfony的版本
访问用户的最简单方法是扩展基础控制器,并使用快捷方式getUser()
方法(在Symfony 4中删除):
$user = $this->getUser();
由于Symfony的2.6你可以从安全令牌存储用户:
$user = $this->get('security.token_storage')->getToken()->getUser();
Symfony的2.6之前,该令牌是由安全上下文服务,而不是访问:
$user = $this->get('security.context')->getToken()->getUser();
请注意,安全上下文服务在Symfony 2中被弃用,并且在Symfony 3.0中被删除。
2
你可以用下面的代码的变量:
$userId = $this->get('security.context')->getToken()->getUser()->getId();
+1
不好的做法,变量名应该是'$ userId' – GusDeCooL
13
在Symfony2中,我们可以得到这个代码的简单:
$id = $this->getUser()->getId();
0
这可以穿好衣服的方法:
/**
* Get user id
* @return integer $userId
*/
protected function getUserId()
{
$user = $this->get('security.context')->getToken()->getUser();
$userId = $user->getId();
return $userId;
}
and induction $ this-> getUserId()
public function example()
{
print_r($this->getUserId());
}
相关问题
- 1. 获取登录用户的日历Id
- 2. 获取登录用户的ID
- 3. QT获取当前登录用户ID
- 4. 从phonegap获取用户ID登录
- 5. 获取用户的角色与FOSUserBundle的Symfony2登录后
- 6. 获取未登录TWIG的用户的角色Symfony2
- 7. 如何获取登录用户的用户ID?
- 8. 如何从登录的用户获取用户ID?
- 9. 如何获取登录用户的用户ID?
- 10. Symfony2:登录用户活动
- 11. 如何从WordPress登录名或用户名获取用户ID
- 12. Java获取登录用户
- 13. 获取登录用户名
- 14. 获取登录用户
- 15. 获取用户登录TWITTER
- 16. Symfony2在教义事件监听器中获取登录用户
- 17. Symfony2:登录失败后获取“用户名”
- 18. ASP.NET MVC2成员:如何获取登录用户的用户ID和角色ID?
- 19. 获取当前登录的用户ID为Facebook应用程序
- 20. 基于登录用户ID的Symfony2路由
- 21. 如何获得登录用户ID C#
- 22. 如何获取登录到当前会话的用户的ID?
- 23. 获取当前登录的FB用户的ID
- 24. asp.net的MVC获取当前登录的用户ID
- 25. 如何获取当前登录的用户的ID在pyrocms?
- 26. 在Symfony2中获取登录信息
- 27. 获取登录从codeigniter会话中的用户ID
- 28. 如何获取当前用户登录grails的id?
- 29. 如何获取当前登录用户的ID?
- 30. Facebook登录问题无法获取用户的实际Facebook ID
在symfony2.1控制器中,您可以通过调用$ this-> getUser()来获取用户。我认为这个版本的symfony是新的。 – PMoubed