2

在我成功登录并检查我的应用程序后,我还会查看针对数据库运行的查询数量(mysql 之一)。并且总是有一个查询获取用户数据。如何强制 FOSUserBundle 将用户对象存储在会话中,而不是一直从数据库中获取它?

编辑

security.yml有这个设置(以及其他关于防火墙的设置)

security:
    providers:
        fos_userbundle:
            id: fos_user.user_manager
4

1 回答 1

1

也许您可以将用户提供程序更改为可以满足您需要的自定义提供程序。它有一个refreshUser()方法,我怀疑它负责这些请求(我猜你当前的用户提供者必须是这个https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Entity/UserManager.php,它扩展了这个https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Model/UserManager.php,它确实实现了 UserProviderInterface (和另一个))。

于 2012-05-24T11:39:49.450 回答