【问题标题】:Symfony - Mapping Exception - The class 'PreAuthenticatedToken' was not found in the chain configured namespaces App\EntitySymfony - 映射异常 - 在链配置的命名空间 App\Entity 中找不到类“PreAuthenticatedToken”
【发布时间】:2018-09-08 18:22:50
【问题描述】:

我正在尝试注销我的用户,得到它的令牌(它是现有的并且正在工作),如下所示:

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”

我尝试在 google 和 SO 上搜索,但没有找到任何相关线程,因为此类不是实体。

我试图在我的控制器顶部包含一个“使用”语句,但这并没有成功。

我做错了什么?

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

【问题讨论】:

    标签: php symfony token symfony4 mappingexception


    【解决方案1】:

    错误是您正在使用教义的实体管理器对令牌存储(我认为这是一个会话 cookie)做某事,而这当然不是教义会知道的实体。只需删除您的行

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

    改为这样做:

    $tokenStorage->setToken(null);
    

    【讨论】:

      猜你喜欢
      • 2021-12-27
      • 2019-08-17
      • 2019-08-10
      • 2019-08-23
      • 2021-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多