为可上传的 Doctrine 扩展创建表单
Create form for Uploadable Doctrine Extension
我想使用 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
是Document的名称还是文件的名称?
Atlantic18/DoctrineExtensions的documentation给实体添加了path
、name
、mimeType
和size
,没有myFile
属性。
任何人都可以解释如何为可上传的 Doctrine 实体设置表单吗?我找不到任何对我有进一步帮助的文档或很好的例子。
实体
就像您发现的那样,documentation of DoctrineExtensions 本身阐明了如何配置可上传扩展以使用您的实体。
主要是通过将 @Gedmo\Uploadable
注释添加到您的实体并将 @Gedmo\UploadableFilePath
添加到 属性 将包含文件路径(例如 $filePath
)。
表格
使用表单生成器的 ->add()
方法,您可以将字段添加到表单中。第一个参数指定相应实体的 属性-名称。所以 ->add('myFile')
会为 属性 $myFile
.
添加一个字段
您需要做的是在 属性 的表单中添加一个(文件)字段,其中将包含文件路径(例如 $filePath
),并标记 属性:
$form = $this->createFormBuilder($entity)
->add('filePath');
$uploadableManager->markEntityToUpload($entity, $entity->getFilePath());
换句话说:您示例中的 myFile
应该替换为我示例中的 filePath
,无论您的实际代码中的实际 属性 是什么。
我想使用 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
是Document的名称还是文件的名称?
Atlantic18/DoctrineExtensions的documentation给实体添加了path
、name
、mimeType
和size
,没有myFile
属性。
任何人都可以解释如何为可上传的 Doctrine 实体设置表单吗?我找不到任何对我有进一步帮助的文档或很好的例子。
实体
就像您发现的那样,documentation of DoctrineExtensions 本身阐明了如何配置可上传扩展以使用您的实体。
主要是通过将 @Gedmo\Uploadable
注释添加到您的实体并将 @Gedmo\UploadableFilePath
添加到 属性 将包含文件路径(例如 $filePath
)。
表格
使用表单生成器的 ->add()
方法,您可以将字段添加到表单中。第一个参数指定相应实体的 属性-名称。所以 ->add('myFile')
会为 属性 $myFile
.
您需要做的是在 属性 的表单中添加一个(文件)字段,其中将包含文件路径(例如 $filePath
),并标记 属性:
$form = $this->createFormBuilder($entity)
->add('filePath');
$uploadableManager->markEntityToUpload($entity, $entity->getFilePath());
换句话说:您示例中的 myFile
应该替换为我示例中的 filePath
,无论您的实际代码中的实际 属性 是什么。