我有一个实体问题和一个实体答案。答案指的是一个问题,并且有一个字段 Correct (这只是布尔值true / false)。每个问题有4个答案,在这4个答案中,有1个是正确的。
现在,我正在实现一个后端表单,可以在其中添加或编辑问题。我使用Symfony表单执行此操作。我的表单类型生成器如下所示:
QuestionType.php
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('description', TextareaType::class, [
'label' => 'admin.question.form.description',
'required' => false,
])
->add('question', TextType::class, [
'label' => 'admin.question.form.question',
])
->add('answers', CollectionType::class,[
'label' => 'admin.question.form.answers.answers',
'entry_type' => AnswerType::class,
]);
}
所以我使用的是答案的集合,总共是4个。该集合正在创建AnswerType表单。
AnswerType.php
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('answer', TextType::class, [
'label' => 'admin.question.form.answers.answer',
])
->add('correct', RadioType::class,[
'label' => 'admin.question.form.answers.correct',
]);
}
仅有两个表单元素,一个答案的输入字段和一个单选按钮,用于指示答案是对还是错。
我想渲染这4个答案字段,每个答案字段的末尾都带有一个单选按钮以指示正确的答案。不幸的是,那些单选按钮没有链接,并且每个都属于它自己的集合。每个单选按钮都是可选的,因此每个答案都可以选择为正确的。这似乎合乎逻辑,因为无法告诉Symfony将它们分组。
每个人都有自己的名字,并且彼此之间不属于彼此。这些复选框如何链接,或者解决该问题的更好方法是什么?
答案 0 :(得分:0)
在相同的问题中为单选按钮设置相同的CSS类名称,并在用户通过JS单击单选按钮时实施检查/取消选中逻辑。
答案 1 :(得分:0)
我认为您做的事情不正确,请检查此solution,我认为这更好。