Symfony2获取login用户的ID

我正在开发一个使用Symfony2和学说2的应用程序。我想知道如何获取当前login用户的ID。

Symfony 2.6开始,您可以从安全令牌存储中检索用户,例如在您的控制器中:

$user = $this->get('security.token_storage')->getToken()->getUser(); 

在Symfony 2.6之前 ,令牌可以从安全上下文服务访问:

 $user = $this->get('security.context')->getToken()->getUser(); 

安全上下文服务已被弃用,并将在Symfony 3.0中被删除。

如果扩展基础控制器,也可以使用快捷方式:

 $user = $this->getUser(); 

那么你可以得到任何你想要的:

 $userId = $user->getId(); 

当然你的用户类需要实现getId()方法。

所有这些都在文档中描述: http : //symfony.com/doc/current/book/security.html#retrieving-the-user-object

更多关于这里的安全性: http : //symfony.com/doc/current/book/security.html#loading-users-from-the-database

在symfony2中,我们可以通过下面的代码来简化它:

 $id = $this->getUser()->getId(); 

你可以用下面的代码获得variables:

 $userId = $this->get('security.context')->getToken()->getUser()->getId(); 

这可以穿着的方法:

 /** * Get user id * @return integer $userId */ protected function getUserId() { $user = $this->get('security.context')->getToken()->getUser(); $userId = $user->getId(); return $userId; } 

和感应$ this-> getUserId()

 public function example() { print_r($this->getUserId()); }