[英]Symfony forms Link radiobuttons over CollectionType
我有一个实体问题和一个实体答案。 答案指的是一个问题,并具有一个字段“ 正确” (这是布尔值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',
]);
}
它只有2个表单元素,答案的输入字段和指示答案是对还是错的单选按钮。
我想渲染这4个答案字段,每个答案字段的末尾都有一个单选按钮,以指示正确的答案。 不幸的是,那些单选按钮没有链接,并且每个都属于它自己的集合。 每个单选按钮都是可选的,因此每个答案都可以选择为正确的。 这似乎合乎逻辑,因为没有办法告诉Symfony将它们分组。
每个人都有其自己的名称,并且不属于彼此。 这些复选框如何链接,或者解决该问题的更好方法是什么?
当用户通过JS单击单选按钮时,在相同的问题中为单选按钮设置相同的CSS类名称,并执行检查/取消选中逻辑。
我认为您做的事情不正确,请检查此解决方案 ,我认为这更好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.