如何在Symfony2中向实体表单添加其他非实体字段

时间:2012-09-12 08:50:16

标签: php symfony

我使用Entity中的一个元素创建了表单:

$promo = new Promo();

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

我想添加文件元素(实体中不存在此字段)。当我这样做时:

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

我有一个错误:属性“image”和方法“getImage()”都没有。如何添加此字段?

2 个答案:

答案 0 :(得分:67)

使用mapped

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

在旧的Symfony版本(2.0及更早版本)中,使用property_path

$form = $this->createFormBuilder($promo)
    ->add('code', 'text')
    ->add('image', 'file', array(
                "property_path" => false,
            ))
    ->getForm();
在Symfony 2.3中删除了

“property_path”

答案 1 :(得分:1)

使用property_path选项:

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