我正在開發一個使用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