在我的项目中,我有 3 个实体;用户、模块和用户模块。
用户具有诸如 id、用户名、电子邮件之类的属性以及作为 UserModules 集合的 UserModules 属性。
模块具有属性 id、name 和 description。
每个 UserModule 对象都有属性 User(对相应用户的引用)、Module(对相应模块的引用)和 Access(是否允许访问的布尔值)
我的问题是我不知道如何在创建用户时使用 Symfony 的表单类型来显示所有模块。我已经制作了许多模块(即'admin'、'ticket'、'help')。在我的 UserType 类中,我的 buildForm 方法如下所示:
{
$builder
->add('username')
->add('email')
->add('modules', CollectionType::class, [
'entry_type' => UserModuleType::class,
'entry_options' => [
'label' => false
],
]);
}
我的 UserModuleType 类是
{
$builder
->add('access', ChoiceType::class, [
'choices' => [
'No Access' => false,
'Full Access' => true,
]
]);
}
这显示了分配给用户的 UserModules,但是在创建用户时,我希望它已经为每个模块添加了 UserModules。
如何进行设置,以便表单使用所有可能的模块来创建默认的 UserModules?