36

Entity から 1 つの要素を含むフォームを作成しました。

$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 に答える