我是用户类
# User
- id
- username
- password
- email
以及具有不同个人资料字段的三个不同角色:
# 1. Teacher
- teachingSince
- aboutMe
- classes
# 2. Pupil
- class
- parents
- dateOfBirth
- grade
3. Parent
- children
- phoneNumber
在another post中,PUGXMultiUserBundle被推荐。
我想使用 FOSUserBundle 来实现这一目标。有谁知道如何按角色定义不同的配置文件?
提前致谢!
答案 0 :(得分:2)
有很多方法可以做到这一点。
用户实体类包含所有字段,您有一个用户的基本表单类型,它只包含所有三个角色的公共字段,然后为每个角色添加必要的字段。< / p>
基本表单类型
class UserType extends AbstractType {
public function buildForm( FormBuilderInterface $builder, array $options ) {
$builder->add('username', TextType::class, []);
// etc etc
}
// ...
}
<强>教师强>
class TeacherType extends UserType {
public function buildForm( FormBuilderInterface $builder, array $options ) {
parent::buildForm($builder, $options);
$builder->add('teaching', DateType::class, []);
// etc etc
}
// ...
}
使用映射的超类User
,为每个角色&#39;扩展它。这需要在auth方面注意一些(使用Guard)。但是,由于我非常讨厌FOSUserBundle,我可能会偏向于这个解决方案。