Tôi đang phát triển một ứng dụng bằng cách sử dụng Symfony2 và học thuyết 2. Tôi muốn biết làm thế nào tôi có thể nhận được Id người dùng hiện đang đăng nhập.Symfony2 nhận id đăng nhập của người dùng
Trả lời
phiên bản Symfony hiện tại (Symfony 4, Symfony> = 3,2)
Since Symfony >=3.2 bạn chỉ có thể mong đợi một thi UserInterface
được tiêm để điều khiển hành động của bạn trực tiếp. Sau đó bạn có thể gọi getId()
để lấy định danh của người dùng:
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;
}
}
Bạn vẫn có thể sử dụng lưu trữ an ninh thẻ như trong tất cả các phiên bản Symfony kể từ 2.6. Ví dụ, trong điều khiển của bạn:
$user = $this->get('security.token_storage')->getToken()->getUser();
Lưu ý rằng các phím tắt Controller::getUser()
đề cập trong phần tiếp theo của câu trả lời này không được chấp trong Symfony 3 và được loại bỏ trong Symfony 4,0
Legacy Symfony phiên bản
Cách dễ nhất để truy cập người dùng đã sử dụng để mở rộng bộ điều khiển cơ sở và sử dụng phương pháp tắt getUser()
(đã loại bỏ trong Symfony 4):
$user = $this->getUser();
Kể từ Symfony 2,6 bạn có thể lấy một người dùng từ lưu trữ thẻ an ninh:
$user = $this->get('security.token_storage')->getToken()->getUser();
Trước Symfony 2,6, token đã được truy cập từ các dịch vụ bối cảnh an ninh thay vì:
$user = $this->get('security.context')->getToken()->getUser();
Lưu ý rằng dịch vụ ngữ cảnh bảo mật không được chấp nhận trong Symfony 2 và đã bị xóa trong Symfony 3.0.
Bạn có thể lấy biến với mã dưới đây:
$userId = $this->get('security.context')->getToken()->getUser()->getId();
thực hành không tốt, tên biến phải là '$ userId' – GusDeCooL
Trong symfony2, chúng ta có thể có được điều này đơn giản hơn bởi mã này:
$id = $this->getUser()->getId();
này có thể mặc quần áo trong phương pháp:
/**
* Get user id
* @return integer $userId
*/
protected function getUserId()
{
$user = $this->get('security.context')->getToken()->getUser();
$userId = $user->getId();
return $userId;
}
Và cảm ứng $ this-> getUserId()
public function example()
{
print_r($this->getUserId());
}
- 1. Nhận id người dùng đã đăng nhập
- 2. Cách nhận id người dùng hiện đang đăng nhập của người dùng ở Django?
- 3. asp.net MVC nhận hiện tại người dùng đăng nhập id
- 4. Nhận ROLE của một người dùng không đăng nhập TWIG Symfony2
- 5. Nhận facebook Việc đăng nhập người dùng
- 6. tên người dùng hoặc id email để đăng nhập?
- 7. Cách đăng nhập bằng Tên người dùng hoặc id email
- 8. Nhận tên người dùng/mật khẩu của người dùng đã đăng nhập trong Windows
- 9. Symfony2 FOSUserBundle - Xác thực với cờ "hoạt động của người dùng" khi đăng nhập
- 10. Cách nhận ID người dùng hiện đã đăng nhập trong pyrocms?
- 11. Truy cập người dùng đã đăng nhập trong hoạt động và mẫu của Symfony2
- 12. Nhận tên người dùng đăng nhập bằng java
- 13. Trang khác cho người dùng đã đăng nhập và người dùng chưa đăng nhập tại gốc
- 14. Trình kiểm tra người dùng tùy chỉnh của Symfony2 dựa trên eula được chấp nhận
- 15. người dùng với twitter đăng nhập Authenticate
- 16. Không nhận được ảnh của người dùng bằng thông tin đăng nhập google
- 17. Cách nhận email của người dùng đã đăng nhập trong PowerShell
- 18. xác thực ldapjs (thiết lập đăng nhập của người dùng)
- 19. Cách giữ người dùng SecureSocial đăng nhập?
- 20. Symfony2 nhận id người dùng trong kho lưu trữ thực thể
- 21. Theo dõi người dùng đã đăng nhập
- 22. Instagram API cách nhận ID người dùng?
- 23. Keychain Android cho thông tin đăng nhập của người dùng
- 24. MVC3 + Cách lấy tên người dùng hiện tại đã đăng nhập của người dùng
- 25. Symfony2 Đăng nhập và Bảo mật
- 26. Cách nhận vai trò của người dùng hiện đang đăng nhập trong Drupal 7?
- 27. Symfony2 - Truy cập vào trang Đăng nhập và Đăng ký cho Ẩn danh chỉ không Người dùng
- 28. Kiểm tra người dùng đã đăng nhập có id chính xác trong Laravel 4
- 29. Đường ray: theo dõi ID của người dùng
- 30. Nhận ID người dùng Facebook theo địa chỉ email
Trong bộ điều khiển symfony2.1, bạn có thể lấy người dùng bằng cách gọi $ this-> getUser(). Tôi nghĩ đây là phiên bản mới của symfony. – PMoubed