Я хотел бы использовать Uploadable, чтобы сохранить некоторые изображения (например, изображение профиля для пользователей). Я уже использую многие другие Doctrine Extensions (softdeletable, timestampable, обвиняемый и т. Д.), Поэтому я подумал, что было бы неплохо использовать и это.
Тем не менее, я не знаю, как настроить мои формы. StofDoctrineExtensionsBundle документация дает этот пример:
$document = new Document();
$form = $this->createFormBuilder($document)
->add('name')
->add('myFile')
->getForm()
;
//(...)
$uploadableManager->markEntityToUpload($document, $document->getMyFile());
В этом примере name
название документа или название файла?
Atlantic18 / DoctrineExtensions-х документация добавляет path
, name
, mimeType
а также size
к сущности, нет myFile
приписывать.
Кто-нибудь может объяснить, как настроить форму для сущности загружаемой доктрины? Я не мог найти какую-либо документацию или хороший пример, который помог бы мне в дальнейшем.
Как вы обнаружили, документация DoctrineExtensions Сам по себе проливает свет на то, как настроить загружаемое расширение для использования вашей сущности.
Главным образом, добавив @Gedmo\Uploadable
аннотации к вашей сущности и @Gedmo\UploadableFilePath
к свойству, которое будет содержать путь к файлу ($filePath
например).
С ->add()
Методом конструктора форм вы добавляете поля в форму. Первый параметр указывает имя свойства соответствующего объекта. Так ->add('myFile')
добавил бы поле для свойства $myFile
,
Что вам нужно сделать, это добавить поле (файл) в форму для свойства, которое будет содержать путь к файлу ($filePath
например), и отметьте это свойство:
$form = $this->createFormBuilder($entity)
->add('filePath');
$uploadableManager->markEntityToUpload($entity, $entity->getFilePath());
Другими словами: myFile
в вашем примере следует заменить на filePath
в моем примере, и независимо от того, что фактическое свойство находится в вашем реальном коде.
Других решений пока нет …