我有一个这样的实体:
class Image
{
/**
* Identifier
*
* @var int
*
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
protected $id;
/**
* Image path
*
* @var string
*
* @ORM\Column(type="string")
*/
protected $path;
/**
* Image file
*
* @var \Symfony\Component\HttpFoundation\File\UploadedFile
*
* @Assert\File(maxSize="6000000")
*/
protected $file;
//GETTERS AND SETTERS
}
和其他实体有例如:
class User {
protected $id;
/**
* Avatar image
*
* @var Image
*
* @ORM\OneToOne(targetEntity="Vendor\MediaBundle\Entity\Image", cascade={"persist"})
*/
protected $avatar;
//GETTERS AND SETTERS
}
我的构建器用户表单类型如下所示:
$builder
->add('avatar', new ImageType(), array(
'required' => false,
));
,ImageType如下所示:
$builder
->add('file', 'file', array('required' => false))
->add('order', 'hidden');
当我没有上传任何文件时,我收到此错误:
此表单不应包含额外字段。
,参数为“file”
让我发疯了......
答案 0 :(得分:0)
如果您使用的是Symfony2.3,则this commit中存在错误。
Fix已于一小时前提交。
使用composer更新symfony:
./compser.phar update symfony/symfony
希望这有帮助