我想使用 FOS USerBundle,但我有不同类型的用户(学生、教师、导演等)可以登录到我的应用程序。然后每个都有不同的属性,每个属性都是唯一的。
如我所见,我有一些选择:
选项 1-拥有一个继承 FOS\UserBundle\Entity\User 的用户实体(并在 config.yml 中设置为 FOS UserBundle 的 user_class),并具有由 ROLE 区分的不同类型用户的所有属性。我特别不喜欢这个选项,因为每次用户登录系统时,用户实体都会有很多 null 属性(只有登录类型的用户的属性会有值,其余属性(几乎在那里)将不被使用。
选项 2-要拥有一个继承 FOS\UserBundle\Entity\User 的用户实体(并在 config.yml 中设置为 FOS UserBundle 的 user_class),为应用程序中的每个参与者(学生、教师、导演等)创建一个实体具有 OneToOne 与 User 实体的关系。这样,每次用户登录时,我都可以说:$logguedUser->getStudent() 或 $logguedUser->getTeacher() 等,具体取决于登录的用户类型。
选项 3-要让用户实体继承 FOS\UserBundle\Entity\User,请为应用程序中的每个参与者(学生、教师、导演等)创建一个实体,并且每个实体都从用户继承。这是我在理论上看到的更好的选项,但我无法确定如何实现它,因为我需要在配置中说 FOS UserBundle 是 user_class,然后我会选择其中的一些(学生、客户、主任等) . 当演员登录应用程序时,我将登录哪个对象?
有没有人有更好的选择,或者实现第三个的方法,或者可能支持一个?发送