我有很多使用Serializer组件的Symfony应用程序。大多数规范化者都需要访问当前用户,因此注入了TokenStorageInterface
。直到我将SerializerInterface
注入到没有当前用户(公共页面,例如登录表单)的控制器中之前,这一直很好。在$this->tokenStorage->getToken()->getUser()->getUsername()
之类的User对象上调用getter会导致错误消息“在字符串上调用成员函数getUsername()”。该消息是正确的,因为如果没有实际用户登录,getUser()
返回一个字符串。
事实证明,序列化程序实例化所有规范化程序,以便丢失的用户遇到问题。
我想念什么?如何在不初始化所有规范化器的情况下注入序列化器服务?