首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Symfony2中获取表示当前用户的实体?

如何在Symfony2中获取表示当前用户的实体?
EN

Stack Overflow用户
提问于 2011-10-07 05:52:40
回答 4查看 176.1K关注 0票数 149

我正在使用Symfony安全设置。一切都很好,但我不知道如何做一件重要的事情:

在twig中,我可以通过执行以下操作来获取当前用户的信息:

代码语言:javascript
复制
Welcome, {{ app.user.username }}

或类似的

如何在控制器中访问相同的信息?具体地说,我希望获得当前的用户实体,这样我就可以将其以关系的方式存储在另一个实体中(一对一映射)。

我真的很希望

代码语言:javascript
复制
$this->get('security.context')->getToken()->getUser()

但这并不管用。它为我提供了一个类型为

代码语言:javascript
复制
Symfony\Component\Security\Core\User\User

我想要一种类型的

代码语言:javascript
复制
Acme\AuctionBundle\Entity\User

这就是我的实体...

EN

回答 4

Stack Overflow用户

发布于 2013-11-27 20:42:30

这个帖子有点旧,但我认为这可能会节省一些人的时间……

我遇到了与原始问题相同的问题,类型显示为Symfony\Component\Security\Core\User\User

最终证明,我是使用内存中的用户登录的

我的security.yml看起来像这样

代码语言:javascript
复制
security:
    providers:
        chain_provider:
            chain:
                providers: [in_memory, fos_userbundle]
        fos_userbundle:
            id: fos_user.user_manager
        in_memory:
            memory:
                users:
                    user:  { password: userpass, roles: [ 'ROLE_USER' ] }
                    admin: { password: adminpass, roles: [ 'ROLE_ADMIN', 'ROLE_SONATA_ADMIN' ] }

核心用户类型始终是Symfony\Component\Security\ in_memory \ user \ user如果要使用自己的实体,请使用该提供程序的用户登录。

谢谢,hj

票数 6
EN

Stack Overflow用户

发布于 2021-11-15 18:51:14

在Symfony版本PHP5和>= >= 8.0中,您可以使用属性来提示经过身份验证的用户,但只能在控制器中输入:

代码语言:javascript
复制
public function indexAction(#[CurrentUser] User $user): Response
{
     // do something
}
票数 3
EN

Stack Overflow用户

发布于 2016-08-04 17:47:36

代码语言:javascript
复制
$this->container->get('security.token_storage')->getToken()->getUser();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7680917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档