Symfony формирует радиокнопки Link над 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.

ТипОтвета.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 сгруппировать их.

Каждый имеет свое имя и не принадлежит друг другу. Как можно связать эти флажки или как лучше решить эту проблему?


person Matsooh    schedule 21.06.2018    source источник


Ответы (1)


Установите одно и то же имя класса CSS для переключателей в том же вопросе и внедрите логику проверки/снятия отметки, когда пользователь нажимает переключатель через JS.

person Vadim Ashikhman    schedule 21.06.2018