我在数据库中有这些表:
user:
- email
- lastname
- firstname
- password
userType1:
- fkUser
- specialCol1
- specialCol2
userType2:
- fkUser
- specialCol1
- specialCol2
我已将Symfony2身份验证服务与user
表一起使用,但我希望在会话中(或在其他地方通过身份验证管理)存储关联的对象:userType1
或{{1 }}
此外,我想根据用户的类型将用户重定向到其帐户。
所以我的问题:
提交认证表格后如何进行处理? (确定它是哪种类型的用户)
如何告诉Symfony在身份验证上下文中管理其他对象(用户类型)?
答案 0 :(得分:0)
查看食谱条目How to load Security Users from the Database。 “使用自定义实体提供程序验证某人”和“管理数据库中的角色”部分可能会有所帮助。
我在验证程序中遇到了类似的问题,其中需要用户及其租户成员资格。我建立了一个自定义提供程序,基本上看起来像菜谱中的那个。序列化用户时,我只使用某个字段(id,用户名,电子邮件),其余数据通过提供者的refreshUser()
获取,用户及其关系再次通过QueryBuilder获取。我遇到了问题,当在会话中序列化用户时,关系“丢失”,否则我不得不一直重新获取用户。
之后,它基本上是@BenjaminPaap写的。您检索用户as described in the documentation并获取用户类型等
如果您想根据用户类型将用户重定向到特定目标,您可能需要查看“How to create a custom UserProvider”。 The Listener提供了在登录后根据其类型重定向用户所需的一切。