gpt4 book ai didi

Symfony 获取登录用户的 ID

转载 作者:行者123 更新时间:2023-12-03 06:06:29 25 4
gpt4 key购买 nike

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

最佳答案

当前 Symfony 版本(Symfony 4、Symfony >=3.2)

Since Symfony >=3.2您可以简单地期望将 UserInterface 实现直接注入(inject)到您的 Controller 操作中。然后,您可以调用 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;
}
}

您仍然可以像 2.6 以后的所有 Symfony 版本一样使用安全 token 存储。例如,在您的 Controller 中:

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

请注意,不再鼓励使用本答案下一部分中提到的 Controller::getUser() 快捷方式。

旧版 Symfony 版本

访问用户的最简单方法是扩展基本 Controller ,并使用快捷方式 getUser() 方法:

$user = $this->getUser();

Symfony 2.6 起,您可以从安全 token 存储中检索用户:

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

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

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

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

关于Symfony 获取登录用户的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10537879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com