Проверка типа выбора в формуляре

#php #forms #symfony

#php #формы #symfony

Вопрос:

У меня есть такое поле типа выбора

                 'Answers',
                ChoiceType::class,
                [
                    'choices' => [
                        'foo' => true,
                        'fooBar' => false,
                        'fooB' => false,
                    ],
                    'expanded' => true
                ]
            )



  

Как я могу проверить это в моем контроллере?

После того, как я выберу foo , например. Здесь

 if ($form->isSubmitted() amp;amp; $form->isValid()) {

        }
  

Комментарии:

1. Вы хотите проверить, когда форма отправляется, если установлен флажок foo ?

2. Не могли бы вы уточнить, чего вы хотите?

3. Я не понимаю, что вы подразумеваете под «проверкой»

4. Я просто хочу вывести текст, если отправлен правильный вариант из вариантов

Ответ №1:

Вы можете получить доступ к своей переменной выбора следующим образом :

Если вы используете Request запрос в параметре вашей функции, вы можете использовать

 $choices = $request->get('yourFormName')['choices'];
  

Или в вашем случае, используя вашу переменную $form

 $choix = $form->get('choices')->getData();
  

Поэтому используйте это, чтобы проверить, соответствует ли результат тому, что вы хотите, или нет.

Комментарии:

1. Привет, я получаю null в результате вашего первого ответа.

2. Действительно, это можно исправить, вы можете использовать $request-> request-> all(), чтобы посмотреть, как выглядит параметр, и использовать его, как и любой массив