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()); }