Symfony 3-无法使用会话获取用户

时间:2019-05-02 14:11:24

标签: php symfony

我的项目中有一个User实体。 每次加载页面时,我都会在数据库中通过查询来恢复用户。

我的目标是在登录后将其直接放入会话变量中,以便在需要时直接将其恢复。

在我的代码中,如果我对此进行测试:

git commit -am 'message'

我有:

enter image description here

因此,该会话似乎可以正常工作。

现在,我将其放入应用程序中。我创建一个函数:

$user = $this->checkBDD($mail,$fredurne,$nomComplet);
        dump($user);

        $this->session->set('user',$user);

        $user = $this->session->get('user');
        dump($user);

使用

$user = $this->getUtilisateur($mail,$fredurne,$nomComplet);
dump($user);

我有:

enter image description here

所以,我不明白是什么问题

1 个答案:

答案 0 :(得分:0)

问题:
原则实体存储在会话中,但需要刷新
但是,当您从会话中检索实体时:教义工作单元不知道它必须处理该实体

在那之后,您应该对Doctrine延迟加载有一些疑问。

会话不适合存储实体。

更好的解决方案是:

  • 在您的服务中注入教义实体管理器
  • 仅在会话上存储ID
  • getUtilisateur方法上,检索ID为ID的用户(如果尚未完成的话)