Symfony - 映射异常 - 在链配置的命名空间App \ Entity中找不到类'PreAuthenticatedToken'

问题描述 投票:1回答:1

我正在尝试注销我的用户,获取它的令牌(已存在且正在工作),如下所示:

public function logout(Request $request, TokenStorageInterface $tokenStorage)
    {
            $em = $this->get('doctrine.orm.entity_manager');
            $user = $this->getUser();
            $user->setConnected(false);
            $em->remove($tokenStorage->getToken()); // Error is here
            $em->persist($user);
            $em->flush();
    }

当我请求此方法时,我收到以下错误:

在链配置的命名空间App \ Entity中找不到“Symfony \ Component \ Security \ Core \ Authentication \ Token \ PreAuthenticatedToken”类

我试图搜索谷歌和SO但没有找到任何相关的线程,因为这个类不是一个实体。

我试图在我的控制器上包含一个“使用”语句,但这并不能解决问题。

我究竟做错了什么 ?

感谢任何愿意花时间阅读或回答此问题的人。

php symfony token symfony4 mappingexception
1个回答
1
投票

错误在于您正在使用doctrine的实体管理器对令牌存储(我认为是会话cookie)执行某些操作,当然这不是一个学说会知道任何事情的实体。只需删除你的行

$em->remove($tokenStorage->getToken()); // <--- REMOVE

而是这样做:

$tokenStorage->setToken(null);
© www.soinside.com 2019 - 2024. All rights reserved.