<?php
namespace App\Form;
use App\Validator\Constraint\SurveyDataRequestConstraint;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\Length;
use Symfony\Component\Validator\Constraints\NotNull;
class SurveyResultFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('user_ip', TextType::class, [
'constraints' => [
new NotNull(),
]
])
->add('user_agent', TextType::class, [
'constraints' => [
new NotNull(),
]
])
->add('survey_id', TextType::class, [
'constraints' => [
new NotNull(),
]
])
->add('user_email', TextType::class, [])
->add('elapsedTime', IntegerType::class, [])
->add('questions', CollectionType::class, [
'entry_type' => 'App\Form\QuestionsFormType',
'allow_add' => true
])
->add('user_email', EmailType::class, []);
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'csrf_protection' => true,
'attr' => ['id' => 'survey-result'],
'constraints' => [
new SurveyDataRequestConstraint(),
]
]);
}
}