【发布时间】:2018-05-02 06:02:53
【问题描述】:
我正在寻找如何使用表单生成器实现动态选择语言的系统。
所以我们必须有两个 html 数组输入字段:name="languages[]",第二个是 name="languges_level[]"
所以这个系统允许用户设置他可以说的语言,他的水平就可以了。
用户可以在提交表单之前动态添加/删除语言。
问题:
1- 表单级别:字段表单类型是什么?我必须添加 2 个表单字段,它们将被组合以创建我的结果数组,该数组将存储在数据库中。所以这两个字段不会被ORM映射。
->add('langues', TYPEXXX:class)
->add('langues_level', TYPEXXX:class)
3- 树枝级别:我是否也应该对树枝进行一些更改?
那么在我的情况下,最好的解决方案是什么?
我的第一次尝试是:
->add('languages', CollectionType::class, array(
'entry_type' => ChoiceType::class,
'entry_options' => array(
'choices' => array(
'Français' => 'Français',
'English' => 'English',
'Italien' => 'Italien',
'Espanish' => 'Espanish',
),
'label' => ' ',
),
))
->add('language_levels', CollectionType::class, array(
'entry_type' => ChoiceType::class,
'entry_options' => array(
'choices' => array(
'Beginner' => 'Beginner',
'Medium' => 'Medium',
'Good' => 'Good',
),
'label' => ' ',
),
));
但这不起作用,正如我在图片中提到的那样......谁有完美的解决方案?
【问题讨论】:
-
你为什么不试试我的答案?我看到你已经编辑了你的问题,它看起来有点像我的答案,但重要的部分是不同的。您已经创建了语言列表和级别列表,但您应该将它们组合起来(我称之为 LanguageLevel)
-
@StephanVierkant:在 LanguageLevel 实体类中为什么要定义用户属性?有必要吗?
-
是的,我想是的?请使用您的实体模型更新您的问题。我假设您有多个用户,他们可以有多个“语言级别”(荷兰语 - 良好,英语 - 中等,德语 - 初学者)。
-
很高兴看到我的回答 helped you out。不要忘记接受我的回答。
标签: symfony doctrine-orm twig entity symfony-forms