我想使用Uploadable来保存一些图像(即用户的个人资料图片)。我已经使用了许多其他的Doctrine Extensions(softdeletable,timestampable,blameable等),所以我觉得使用这个也很好。
但是,我不知道如何设置我的表单。 StofDoctrineExtensionsBundle documentation给出了这个例子:
$document = new Document();
$form = $this->createFormBuilder($document)
->add('name')
->add('myFile')
->getForm()
;
//(...)
$uploadableManager->markEntityToUpload($document, $document->getMyFile());
在此示例中,name
是文档的名称还是文件的名称?
Atlantic18 / DoctrineExtensions documentation向实体添加了path
,name
,mimeType
和size
,没有{{} 1}}属性。
有人可以解释如何为可上传的Doctrine实体设置表单吗?我找不到任何可以帮助我的文件或好的例子。
答案 0 :(得分:1)
就像你发现的那样,documentation of DoctrineExtensions本身揭示了如何配置可上传扩展以使用你的实体。
主要是将@Gedmo\Uploadable
注释添加到您的实体,将@Gedmo\UploadableFilePath
添加到包含文件路径的属性(例如$filePath
)。
使用表单构建器的->add()
方法,您可以向表单添加字段。第一个参数指定相应实体的property-name。因此,->add('myFile')
会为属性$myFile
添加字段。
您需要做的是将(文件)字段添加到包含文件路径(例如$filePath
)的属性的表单中,并标记该属性:
$form = $this->createFormBuilder($entity)
->add('filePath');
$uploadableManager->markEntityToUpload($entity, $entity->getFilePath());
换句话说:在我的示例中,您的示例中的myFile
应替换为filePath
,并且无论实际代码中的实际属性是什么。