Home » Php » php – How to add additional non-entity fields to entity form in Symfony2

php – How to add additional non-entity fields to entity form in Symfony2

Posted by: admin April 23, 2020 Leave a comment

Questions:

I have created form with one element from Entity:

$promo = new Promo();

$form = $this->createFormBuilder($promo)
        ->add('code', 'text')
        ->getForm();

And I want to add file element (this field doesn’t exist in the Entity). When I do:

$form = $this->createFormBuilder($promo)
        ->add('code', 'text')
        ->add('image', 'file')
        ->getForm();

I have an error: Neither property “image” nor method “getImage()”. How can I add this field?

How to&Answers:

Use mapped:

$form = $this->createFormBuilder($promo)
    ->add('code', 'text')
    ->add('image', 'file', array(
                "mapped" => false,
            ))
    ->getForm();

In old Symfony versions (2.0 and earlier), use property_path:

$form = $this->createFormBuilder($promo)
    ->add('code', 'text')
    ->add('image', 'file', array(
                "property_path" => false,
            ))
    ->getForm();

“property_path” was removed in Symfony 2.3

Answer:

Use the property_path option:

$builder->add('image', 'file', [
    'property_path' => false,
]);