36

我已经使用 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()”都没有。如何添加此字段?

4

2 回答 2

86

使用映射

$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();

“property_path”在 Symfony 2.3 中被移除

于 2012-09-12T09:08:06.513 回答
1

使用property_path选项:

$builder->add('image', 'file', [
    'property_path' => false,
]);
于 2012-09-12T09:07:33.910 回答