使用Symfony2身份验证存储多个对象

时间:2012-12-07 08:32:07

标签: php symfony

我在数据库中有这些表:

user:
- email
- lastname
- firstname
- password

userType1:
- fkUser
- specialCol1
- specialCol2

userType2:
- fkUser
- specialCol1
- specialCol2

我已将Symfony2身份验证服务与user表一起使用,但我希望在会话中(或在其他地方通过身份验证管理)存储关联的对象:userType1或{{1 }}

此外,我想根据用户的类型将用户重定向到其帐户。

所以我的问题:

提交认证表格后如何进行处理? (确定它是哪种类型的用户)

如何告诉Symfony在身份验证上下文中管理其他对象(用户类型)?

1 个答案:

答案 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提供了在登录后根据其类型重定向用户所需的一切。