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?
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,
]);