Search code examples
formssymfony4

Access form data dynamically in symfony 4


I have created following simple form in symfony 4.

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('name', TextType::class)
        ->add('email', EmailType::class)
        ->add('message',TextareaType::class)
    ;
}

I access these data from a controller method like following:

$form = $this->createForm(ContactType::class);
$form->handleRequest($request);
$formdata = $form->getData();

$concatenatedData = implode (",", array("Name: ".$formdata['name'], "E-mail: ".$formdata['email'], "Message: ".$formdata['message']));

Now i need to add more fields in the form. In that case, I need to loop through the $formdata and get those values in $concatenatedData. I am new in symfony. Can anyone give me any hints how to do that dynamically in symfony 4 ? Many thanks in advance.


Solution

  • create a class that you need after defining in form class

    class ContactType extends AbstractType
    {
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('name');
        $builder->add('price');
    }
    
    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => Content::class,
        ));
    }
    }
    

    Follow

    $content = new Content();
    $form = $this->createForm(ContactType::class, $content);
    $form->handleRequest($request);
    $formdata = $form->getData();
    
    $content->getName();
    $content->getOther();
    ...