Создать форму для расширения загружаемой доктрины

Я хотел бы использовать 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 приписывать.

Кто-нибудь может объяснить, как настроить форму для сущности загружаемой доктрины? Я не мог найти какую-либо документацию или хороший пример, который помог бы мне в дальнейшем.

0

Решение

сущность

Как вы обнаружили, документация DoctrineExtensions Сам по себе проливает свет на то, как настроить загружаемое расширение для использования вашей сущности.

Главным образом, добавив @Gedmo\Uploadable аннотации к вашей сущности и @Gedmo\UploadableFilePath к свойству, которое будет содержать путь к файлу ($filePath например).

форма

С ->add() Методом конструктора форм вы добавляете поля в форму. Первый параметр указывает имя свойства соответствующего объекта. Так ->add('myFile') добавил бы поле для свойства $myFile,

Что вам нужно сделать, это добавить поле (файл) в форму для свойства, которое будет содержать путь к файлу ($filePath например), и отметьте это свойство:

$form = $this->createFormBuilder($entity)
->add('filePath');

$uploadableManager->markEntityToUpload($entity, $entity->getFilePath());

Другими словами: myFile в вашем примере следует заменить на filePath в моем примере, и независимо от того, что фактическое свойство находится в вашем реальном коде.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]