如何在symfony 4中获取登录用户的ID?

时间:2018-04-26 21:14:12

标签: php html symfony symfony4

用户可以登录,但我需要他的ID来显示他的个人资料。由于我在symfony 4工作,我发现的许多可能的答案已经过时了。

1 个答案:

答案 0 :(得分:3)

https://symfony.com/doc/current/security.html#retrieving-the-user-object

  

验证后,可以通过getUser()快捷方式(使用security.token_storage服务)访问当前用户的User对象。从控制器内部看,它将如下所示:

public function index()
{
    $this->denyAccessUnlessGranted('IS_AUTHENTICATED_FULLY');

    $user = $this->getUser();
}

用户将是一个对象,该对象的类将取决于您的用户提供者。但是,您没有告诉我们您使用的是哪个用户提供商,因此我无法告诉您,除此之外,如何获取ID本身。

另一种获取用户的方式:

  

在控制器中获取当前用户的另一种方法是使用UserInterface键入提示控制器参数(如果登录是可选的,则默认为null):

use Symfony\Component\Security\Core\User\UserInterface\UserInterface;

public function indexAction(UserInterface $user = null)
{
    // $user is null when not logged-in or anon.
}
  

仅适用于未从Symfony基本控制器扩展且不使用ControllerTrait的有经验的开发人员。否则,建议继续使用getUser()快捷方式。

相关问题